【總結】紀中Day6比賽總結
阿新 • • 發佈:2021-07-18
紀中Day6比賽總結
今天果然爆掉了。只有130分,排名掉了20多。T1直接眼睛瞎掉,硬生生地把一個01揹包打成了暴力,30分。第三題沒找著規律,果然我數論就是菜啊。T4還想拿一點部分分,結果一分沒拿到。
T1
01揹包,差不多是個模板題吧,只是要多判斷一下重要度。
Code
#include<iostream> #include<iomanip> #include<cmath> #include<algorithm> #include<cstring> #include<cstdio> #include<cstdlib> #include<string> using namespace std; int te[30010],p[30010],alltime,n,allp[30010],maxn=0; void input() { cin>>alltime>>n; for(int i=1;i<=n;i++) { cin>>p[i]>>te[i]; } return; } int main() { freopen("happy.in","r",stdin); freopen("happy.out","w",stdout); input(); for(int i=1;i<=n;i++) { for(int j=alltime;j>=1;j--) if(j>=p[i]) { allp[j]=max(allp[j],allp[j-p[i]]+te[i]*p[i]); } if(allp[alltime]>maxn) maxn=allp[alltime]; } cout<<maxn; fclose(stdin); fclose(stdout); return 0; }
T2
這道題其實和昨天做的火星人差不多,只不過是多了一個將字串變為數字串的過程。然後再用全排列的方法求出後面的五個數。
Code
#include<iostream> #include<iomanip> #include<cstdio> using namespace std; int n,m,a,b[1005],d,t,k; char s; int main() { freopen("count.in","r",stdin); freopen("count.out","w",stdout); cin>>n>>m>>a; for(int i=1;i<=a;i++) { cin>>s; b[i]=s-'a'+1; } for(int i=1;i<=5;i++) { if(b[a]!=m) { b[a]++; for(int j=1;j<=a-1;j++) cout<<char(b[j]+'a'-1); cout<<char(b[a]+'a'-1)<<endl; continue; } d=0; t=0; for(k=a-1;k>=1;k--) { t++; if(b[k]!=m-t){ t=1;break; } } if(t==1) { b[k]++; for(int j=k+1;j<=a;j++) b[j]=b[j-1]+1; for(int j=1;j<=a;j++) cout<<char(b[j]+'a'-1); cout<<endl; } } fclose(stdin); fclose(stdout); return 0; }
T3
這道題需要我們去找規律。我們觀察題目,發現每一個需要多個數相加的項,其實都是由在它之前並且離它最近的唯一冪(單純的k的冪)與唯一冪前面的每一個數相加而成的。
例如題中給出數列的第五項(30+32),其實就是由在它前面並且最近的唯一冪32加上唯一冪前的第一項30得到的,以此類推,後面每一項都是如此(就等於k的冪)。
Code
#include<iostream> #include<algorithm> #include<cstdio> #include<iomanip> using namespace std; long long a[1000]; int main() { freopen("sequence.in","r",stdin); freopen("sequence.out","w",stdout); int n,k,m,j,i; cin>>k>>n; m=j=1; i=2; a[1]=1; while(i<=n) { if(j==m) { a[i]=a[m]*k; m=i; j=1; } else { a[i]=a[m]+a[j]; j++; } i++; } cout<<a[n]; fclose(stdin); fclose(stdout); return 0; }
T4
還未做出
總結
今天做得真的不行,題目看錯了(主要是我dp沒掌握好),而且T3比賽時的程式碼實現也出了問題,T4的快速冪不會打,而且也沒想出思路。要儘快熟練掌握DFS和DP了
本人csdn部落格