1、字母有重复全排#includebits/stdc.h using namespace std; int n; void isVaild(string s){ if(s.size()n){ coutsendl; return; } for(int i0;in;i){ char cAi; isVaild(sc); } } int main(){ cinn; isVaild(); return 0; }2、有重复元素的排列问题#includebits/stdc.h using namespace std; int main() { int n; string s; cin n s; sort(s.begin(), s.end()); int cnt 0; do { cout s endl; cnt; } while (next_permutation(s.begin(), s.end())); cout cnt endl; return 0; }3、午餐费用#includebits/stdc.h using namespace std; int dp[100005]; int c[35]; int n,m; int main(){ cinnm; for(int i1;in;i){ cinc[i]; } for(int i1;in;i){ for(int jm;jc[i];j--){ if(dp[j]dp[j-c[i]]c[i]){ dp[j]dp[j-c[i]]c[i]; } } } coutdp[m]endl; return 0; }4、彩虹瓶#includebits/stdc.h using namespace std; const int MAXN1e35; int a[MAXN][MAXN]; int main(){ int n,m,k; cinnmk; for(int i1;ik;i){ for(int j1;jn;j){ cina[i][j]; } } for(int i1;ik;i){ int b[MAXN]; int top-1; int t1; bool strue; for(int j1;jn;j){ int ca[i][j]; if(ct){ t; while(top0b[top]t){ top--; t; } } else{ top; if(topm){ sfalse; break; } b[top]c; } } if(s){ while(top0){ if(b[top]t){ top--; t; } else{ sfalse; break; } } if(t!n1){ sfalse; } } if(s){ coutYESendl; } else{ coutNOendl; } } return 0; }5、前缀和#includebits/stdc.h using namespace std; const int N3e55; int a[N],b[N]; int main(){ int n,m; scanf(%d %d,n,m); for(int i1;in;i){ scanf(%d,a[i]); b[i]b[i-1]a[i]; } int l,r; while(m--){ scanf(%d %d,l,r); printf(%d\n,b[r]-b[l-1]); } return 0; }