日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Codeforces Good Bye 2016 题解

發布時間:2024/1/17 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Codeforces Good Bye 2016 题解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

好久沒有fst題了。。。比賽先A了前4題然后發現room里有人已經X完題了沒辦法只能去打E題,結果差一點點打完。。。然后C題fst掉了結果就掉rating 了。。。下面放題解

A. New Year and Hurry

題目大意:給定n道題和時間t,每完成第i道題需花$5*i$ 分鐘,求在$240-t$分鐘內完成的最大題數。

直接模擬,求完成i道題所花時間$t_i+t\leq 240$ 的最大值

Code :

1 #include<cstdio> 2 #include<iostream> 3 #include<cstring> 4 #include<algorithm> 5 using namespace std; 6 int main(){ 7 int n,k; 8 scanf("%d%d",&n,&k); 9 k=240-k; 10 for (int i=1;i<=n;i++) { 11 k-=i*5; 12 if (k<0) { 13 printf("%d\n",i-1); 14 return 0; 15 } 16 } 17 printf("%d\n",n); 18 return 0; 19 } View Code

B. New Year and North Pole

題目大意:從北極點出發,按指令指示走,求指示是否合法,同時能否在最后走回北極點。

要求在北極點只能向南走,在南極點只能向北走。 直接模擬咯,然后判斷是否在南北極點就完了。

Code:

1 #include<cstdio> 2 #include<iostream> 3 #include<cstring> 4 #include<algorithm> 5 using namespace std; 6 int main(){ 7 int n,d,t=0; 8 char o[20]; 9 scanf("%d",&n); 10 for (int i=1;i<=n;i++) { 11 scanf("%d%s",&d,o); 12 switch(o[0]) { 13 case 'S' : 14 t+=d; 15 break; 16 case'N': 17 t-=d; 18 break; 19 } 20 if (t<0||t>20000) {printf("NO\n");return 0;} 21 if (t==0||t==20000) { 22 if (o[0]=='E'||o[0]=='W') { 23 puts("NO\n");return 0; 24 } 25 } 26 } 27 if (t==0) printf("YES\n");else puts("NO"); 28 return 0; 29 } View Code

C. New Year and Rating

題目大意:給定每場比賽的div以及rating升降,問結束時可能的最大rating

可以先2分分數然后判斷是否合法,當然也可以求前綴和然后看div1的最低和div2的最高,然后吧div2的最高設為1899即可。(我TM吧數組開小了啊啊啊)

Code:

1 #include<cstdio> 2 #include<iostream> 3 #include<cstring> 4 #include<algorithm> 5 using namespace std; 6 #define maxn 200010 7 int n,s[maxn],a[maxn]; 8 #define inf 1e9 9 int mn=inf,mx=-inf; 10 int main(){ 11 scanf("%d",&n); 12 for (int i=1;i<=n;i++) { 13 scanf("%d%d",s+i,a+i-1); 14 s[i]+=s[i-1]; 15 } 16 for (int i=0;i<n;i++){ 17 if (a[i]==1) mn=min(mn,s[i]); 18 else mx=max(mx,s[i]); 19 } 20 if (mn<=mx) { 21 puts("Impossible");return 0; 22 } 23 if (mx==-inf) { 24 puts("Infinity");return 0; 25 } 26 printf("%d\n",1899-mx+s[n]); 27 return 0; 28 } View Code

D. New Year and Fireworks

題目大意:放煙花,每條煙火向一個方向前進$t_i$步然后向$45^\circ$擴散出2條煙火,求一共染了多少格子。

考慮直接模擬,由于最多有$2^{30}$條軌跡看上去并不可行,但我們可以發現向上下左右最大只能擴展150個方塊,也就是說去重之后最多只有$300*300*4$條路徑,可以接受。去重后模擬即可。

Code:

1 #include<cstdio> 2 #include<iostream> 3 #include<algorithm> 4 #include<cstring> 5 using namespace std; 6 #define maxn 330 7 int f[maxn][maxn][8]; 8 int b[maxn][maxn]; 9 int w[8][2]={{1,0},{1,1},{0,1},{-1,1},{-1,0},{-1,-1},{0,-1},{1,-1}}; 10 int main(){ 11 f[160][160][0]=1; 12 int n; 13 scanf("%d",&n); 14 for (int l=1;l<=n;l++) { 15 int t; 16 scanf("%d",&t); 17 for (int i=1;i<=320;i++) 18 for (int j=1;j<=320;j++) 19 for (int k=0;k<8;k++) { 20 if (f[i][j][k]!=l) continue; 21 for (int l=1;l<=t;l++) 22 b[i+w[k][0]*l][j+w[k][1]*l]=1; 23 f[i+w[k][0]*t][j+w[k][1]*t][(k+1)%8]=f[i+w[k][0]*t][j+w[k][1]*t][(k-1+8)%8]=l+1; 24 } 25 } 26 int sum=0; 27 for (int i=1;i<=320;i++) 28 for (int j=1;j<=320;j++) sum+=b[i][j]; 29 printf("%d\n",sum); 30 return 0; 31 } View Code

E. New Year and Old Subsequence

題目大意:給定一個字符串,每次求l~r中要刪去多少字符才能使字符串中有2017而沒有2016

很明顯是個區間RMQ,考慮如何進行區間合并,考慮每個區間我們記錄出現2017的所有子串需要刪去的字符數(例如1的話就后面不能有6和7,但前面可以有0),然后就能非常復雜的轉移了。。

Code:代碼較糟請慢慢看。。。

1 #include<cstdio> 2 #include<iostream> 3 #include<cstring> 4 #include<algorithm> 5 using namespace std; 6 #define minn 210000 7 #define mink 19 8 int n,m; 9 char s[minn];/* 10 string a[15]; 11 a[0]="2"; 12 a[1]="0"; 13 a[2]="1"; 14 a[3]="7"; 15 a[4]="6"; 16 a[5]="20"; 17 a[6]="01"; 18 a[7]="17"; 19 a[8]="201"; 20 a[9]="017"; 21 a[10]="2017";*/ 22 struct node { 23 int f[11],s[5]; 24 }; 25 #define inf 1000000 26 node update(node x,node y) { 27 node ans; 28 for (int i=0;i<=10;i++) ans.f[i]=inf; 29 ans.f[0]=min(ans.f[0],min(x.f[0]+y.s[1],y.f[0]+x.s[0])); 30 ans.f[1]=min(ans.f[1],min(x.f[1]+y.s[2],x.s[1]+y.f[1])); 31 ans.f[2]=min(ans.f[2],min(x.f[2]+y.s[3]+y.s[4],x.s[2]+y.f[2])); 32 ans.f[3]=min(ans.f[3],min(x.f[3]+y.s[4],x.s[3]+y.f[3]+x.s[4])); 33 ans.f[5]=min(ans.f[5],min(x.f[5]+y.s[2],min(x.s[0]+y.f[5],x.f[0]+y.f[1]))); 34 ans.f[6]=min(ans.f[6],min(x.f[6]+y.s[3]+y.s[4],min(x.s[1]+y.f[6],x.f[1]+y.f[2]))); 35 ans.f[7]=min(ans.f[7],min(x.f[7]+y.s[4],min(x.s[2]+y.f[7],x.f[2]+y.f[3]))); 36 ans.f[8]=min(ans.f[8],min(min(x.f[8]+y.s[3]+y.s[4],x.s[0]+y.f[8]), 37 min(x.f[5]+y.f[2],x.f[0]+y.f[6]))); 38 ans.f[9]=min(ans.f[9],min(min(x.f[9]+y.s[4],x.s[1]+y.f[9]), 39 min(x.f[6]+y.f[3],x.f[1]+y.f[7]))); 40 ans.f[10]=min(ans.f[10],min(min(x.f[10]+y.s[4],x.s[0]+y.f[10]), 41 min(x.f[0]+y.f[9],min(x.f[5]+y.f[7],x.f[8]+y.f[3])))); 42 for (int i=0;i<5;i++) ans.s[i]=x.s[i]+y.s[i]; 43 return ans; 44 } 45 node build(int x) { 46 node ans; 47 memset(ans.s,0,sizeof(ans.s)); 48 for (int i=0;i<=10;i++) ans.f[i]=inf; 49 switch (x){ 50 case 2: 51 ans.s[0]=1;ans.f[0]=0;break; 52 case 0: 53 ans.s[1]=1;ans.f[1]=0;break; 54 case 1: 55 ans.s[2]=1;ans.f[2]=0;break; 56 case 7: 57 ans.s[3]=1;ans.f[3]=0;break; 58 case 6: 59 ans.s[4]=1;break; 60 } 61 return ans; 62 } 63 void print(node x){ 64 for (int i=0;i<=10;i++) printf("%d ",x.f[i]); 65 printf("\n"); 66 for (int i=0;i<=5;i++) printf("%d ",x.s[i]); 67 printf("\n"); 68 } 69 node f[mink][minn]; 70 int main(){ 71 scanf("%d%d",&n,&m); 72 scanf("%s",s+1); 73 for (int i=1;i<=n;i++) f[0][i]=build(s[i]-'0'); 74 for (int i=1;(1<<i)<=n;i++) 75 for (int j=1;j+(1<<i)-1<=n;j++){ 76 f[i][j]=update(f[i-1][j],f[i-1][j+(1<<(i-1))]); 77 } 78 for (int i=1;i<=m;i++) { 79 int l,r; 80 scanf("%d%d",&l,&r); 81 node ans; 82 int flag=0; 83 for (int j=mink-1;j>=0;j--) { 84 if (l+(1<<j)-1<=r) { 85 if (!flag) {ans=f[j][l];flag=1;} 86 else ans=update(ans,f[j][l]); 87 l+=(1<<j); 88 } 89 } 90 if (ans.f[10]==inf) printf("-1\n"); 91 else printf("%d\n",ans.f[10]); 92 } 93 return 0; 94 } View Code

?

轉載于:https://www.cnblogs.com/New-Godess/p/6239946.html

總結

以上是生活随笔為你收集整理的Codeforces Good Bye 2016 题解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 一二三毛片 | 91精品国产免费 | 亚洲天天在线 | 欧美久久激情 | 漂亮人妻被中出中文字幕 | 深夜精品视频 | 果冻传媒18禁免费视频 | 日本理论中文字幕 | 久久成人黄色 | 91亚洲精华国产精华精华液 | 欧美极品喷水 | 成人a网站 | 亚洲嫩草影院 | 女儿的朋友5中汉字晋通话 欧美成人免费高清视频 | 国产专区第一页 | 色免费看 | 中文字幕在线看片 | 91在线观看免费高清完整版在线观看 | 国偷自产av一区二区三区麻豆 | 日韩欧美在线视频免费观看 | 亚洲色图p | 精品国产一区二区三区久久 | 亚洲xx网站 | 久久夜色精品国产欧美乱 | 99精品在线 | 国产精品永久在线观看 | 毛片动态图| 亚洲一级在线观看 | 波多野吉衣在线视频 | 91精品美女| 亚洲在线中文字幕 | 亚洲欧美在线看 | 99色在线| 在线视频激情小说 | 欧美美女色图 | 中文字幕人妻色偷偷久久 | 国产欧美精品国产国产专区 | 日本免费网址 | 中日韩中文字幕 | 九九热最新 | av地址在线观看 | 韩国成人理伦片免费播放 | 黄色日韩| 一区不卡av| 精品人妻视频在线 | 国产九色在线播放九色 | 日本视频在线看 | 欧美一二三四五区 | 欧美激情精品久久久久久变态 | 97精品视频在线 | 国产精品入口 | 亚洲国产欧美一区二区三区深喉 | 玖玖爱免费视频 | 久久精品a亚洲国产v高清不卡 | 久久国产人妻一区二区免色戒电影 | 美女爱爱爱 | 艹男人的日日夜夜 | 美女一区二区三区 | 国产精品毛片一区二区在线看 | 黄视频免费看在线 | 亚洲成年人影院 | 国产一区一一区高清不卡 | 欧美人体做爰大胆视频 | 拍摄av现场失控高潮数次 | 亚洲视频一区二区三区四区 | 无码成人精品区一级毛片 | 手机在线看片国产 | 免费在线观看污 | 欧美国产第一页 | 欧美经典一区二区三区 | 免费看成人aa片无码视频羞羞网 | 日批免费看 | 亚洲成av人片一区二区 | 国产精品大屁股白浆一区 | 美女涩涩网站 | 欧美极度另类 | 欧美黑人一区二区三区 | 色秀av | 亚洲一区二区中文字幕 | 国产又粗又猛又爽 | 日韩视频 中文字幕 | 四虎国产在线 | 色久综合 | av综合色 | 九草视频在线观看 | 天天撸在线视频 | 法国空姐在线观看免费 | 毛片视频网址 | 国产中文自拍 | 使劲插视频 | 亚洲午夜精品 | 97超碰资源站 | 亚洲三级影视 | 日韩在线网 | 欧美国产精品一区二区 | av在线视屏| 男人添女人下部高潮全视频 | 成人xxxxx| 无码人妻少妇伦在线电影 |