蒟蒻求助 可以让全机房的人关注dalao

P1092 [NOIP2004 提高组] 虫食算

@[AndyC](/user/366430) 你这个 test 的意思是你循环到第一个符合条件的就 return true
by 8atemak1r @ 2022-10-23 19:23:10


@[AndyC](/user/366430) 没有判断全
by 8atemak1r @ 2022-10-23 19:23:20


循环里要写判错的条件
by 8atemak1r @ 2022-10-23 19:23:32


而且你这个判断条件也是错的,不能是或,进位不进位要取决于上一位
by 8atemak1r @ 2022-10-23 19:24:01


@[8atemak1r](/user/305121) 我也写过进位的代码 貌似也不对...
by AndyC @ 2022-10-23 19:27:49


```cpp #include<bits/stdc++.h> using namespace std; bool use[28]; int n,a[28]; string x,y,z; bool test(){ int tot=0; for(int i=0;i<n;i++){//ok int q,w,e; q=a[x[i]-'A'+1];//ok w=a[y[i]-'A'+1]; e=a[z[i]-'A'+1]; if((q+w+tot)%n!=e) return false; tot=(q+w+tot)/n; } return true; //if(a[1]==1&&a[2]==0&&a[3]==3&&a[4]==4&&a[5]==2) return true; //return false; } void dfs(int now){ if(now==n+1){ if(test()){ for(int j=1;j<=n;j++){ cout<<a[j]<<' '; } exit(0); } return; } for(int i=0;i<n;i++){//0 1 2 3 4 5 if(!use[i]){ a[now]=i; use[i]=true; dfs(now+1); use[i]=false; } } return; } void work(){ cin>>n;//>>x>>y>>z; scanf("%s",&x); scanf("%s",&y); scanf("%s",&z); dfs(1); } int main(){ work(); return 0; } ```
by AndyC @ 2022-10-23 19:32:18


@[AndyC](/user/366430) 你是不是高低位弄反了
by 8atemak1r @ 2022-10-23 19:48:09


@[8atemak1r](/user/305121) 确实是 但是调过来还是错(还是因为我太弱了。。。。)
by AndyC @ 2022-10-23 19:52:23


@[AndyC](/user/366430) 看看
by 8atemak1r @ 2022-10-23 20:26:26


@[8atemak1r](/user/305121) ```cpp void work(){ cin>>n>>x>>y>>z; //scanf("%s",&x); //scanf("%s",&y); //scanf("%s",&z); dfs(1); } ``` 哈哈哈哈我这辈子都不用scanf了 谢谢(又加了点剪枝)AC了 等上课了我叫我同学关注dalao
by AndyC @ 2022-10-23 21:34:17


| 下一页