1 solutions
-
0
#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
- 7
- Accepted
- 6
- Uploaded By