3 solutions

  • 2
    @ 2026-4-25 11:24:52
    #include<bits/stdc++.h>
    using namespace std;
    int main()
    {
    	string s;
    	cin>>s;
    	int ans=0;
    	for(int i=0;i<=9999;i++)
    	{
    		bool flag[10]={}; //默认全是空的
    		int x=i;
    		for(int j=0;j<4;j++) //四位数拆四次 
    		{
    			flag[x%10]=true;
    			x/=10;	
    		} 
    		bool st=true;//最开始是合法的
    		for(int j=0;j<10;j++)
    		{
    			if(s[j]=='o'&&flag[j]==0) st=false;//本来该出现但是没有出现
    			if(s[j]=='x'&&flag[j]==1) st=false;//本来不该出现,但是出现了 
    		}
    		ans+=st; 
    	}
    	cout<<ans;	
    }
    
    • 1
      @ 2026-5-30 10:22:57
      #include<bits/stdc++.h>
      using namespace std;
      int main()
      {
      	string s;
      	cin>>s;
      	int ans=0;
      	for(int i=0;i<=9999;i++)
      	{
      		bool flag[10]={}; //默认全是空的
      		int x=i;
      		for(int j=0;j<4;j++) //四位数拆四次 
      		{
      			flag[x%10]=true;
      			x/=10;	
      		} 
      		bool st=true;//最开始是合法的
      		for(int j=0;j<10;j++)
      		{
      			if(s[j]=='o'&&flag[j]==0) st=false;//本来该出现但是没有出现
      			if(s[j]=='x'&&flag[j]==1) st=false;//本来不该出现,但是出现了 
      		}
      		ans+=st; 
      	}
      	cout<<ans;	
      }
      • 0
        @ 2026-1-10 12:05:12
        #include <bits/stdc++.h>
        using namespace std;
        
        int cnt[11],cnt2[11];//cnt记录限定条件 
        
        int main(){
        	int ans=0;
        	string s;
        	cin>>s;
        	for(int i=0;i<s.size();i++) {
        		if(s[i]=='o')cnt[i]=1;
        		if(s[i]=='x')cnt[i]=-1;
        		//?不用处理 
        	}
        	
        	//枚举 0000-9999所有的密码-->判断是否符合条件
        	for(int i=0;i<=9999;i++){
        		//生成密码 
        		char c[5];//包含结束字符
        		sprintf(c,"%04d",i);
        		
        		//统计枚举密码中每个数的出现次数
        		memset(cnt2,0,44);
        		for(int i=0;i<=3;i++) cnt2[c[i]-'0']++;
        		
        		//枚举0-9,判断是否符合限制条件
        		bool flag =true;
        		for(int i=0;i<10;i++){
        			if(cnt[i]==1 && !cnt2[i]){
        				flag=0;
        				break;
        			}
        			if(cnt[i]==-1 && cnt2[i]){
        				flag=0;
        				break;
        			}
        			
        		} 
        		if(flag) ans++;
        	} 
        	cout<<ans;
        	return 0;
        }
        ···
        • 1

        Information

        ID
        2634
        Time
        1000ms
        Memory
        256MiB
        Difficulty
        3
        Tags
        # Submissions
        25
        Accepted
        14
        Uploaded By