北京
E 题 Cats and Fish

题意:有n只猫m条鱼,然后每只猫吃鱼的速度不同,为ci,,,然后吃完当前鱼可以继续吃下一条,问经过x分钟后还剩下几只完整的鱼几只不完整的鱼。

思路:模拟,简单模拟这个过程就行,我们用一个bool数组来记录当前猫是否在吃鱼。遍历时间渐推,如果当前时间点吃完鱼,看是否还有鱼,还有时间,如果有的话,这只猫继续吃鱼。否则就是正在吃鱼时间到了。将vis改变即可。

#include<bits/stdc++.h>using namespace std;
int a[1005];
bool vis[1005];int main(){int n,m,x;while(cin>>m>>n>>x){memset(vis,0,sizeof(vis)); for(int i=0;i<n;i++) cin>>a[i];if(x == 0){cout<<"m 0"<<endl;continue;}sort(a,a+n);//效率快的猫先吃鱼for(int i=0;i<n;i++){if(m>0){//一开始几只猫在吃鱼 vis[i] = 1;//剩下的完整的鱼的数量 m--;}}for(int i=1;i<=x;i++){//枚举时间for(int j=0;j<n;j++){//枚举猫if(i%a[j]==0 && m>0 &&i!=x)  m--;//吃完一条鱼,还剩有鱼且还有时间,就吃下一条 else if(i%a[j]==0) vis[j]=0;//刚好吃完,那么停止吃鱼 }    }int ans = 0;for(int i=0;i<n;i++){if(vis[i]) ans++;} cout<<m<<" "<<ans<<endl;}return 0;
}

F 题 Secret Poems

题意:就是打印由图一转变的图形,直接看样例就理解了。不过真的恶习哦,看了好一会还没看出规律是啥。就是把以前做过的一个蛇形矩阵变成了回型矩阵,不过还是好讨厌这样子的题目!!!先留个坑。

J 题 Pangu and Stones

题意:有一堆石头,每次你只能把L到R的石头合并成一堆,每一个石头都有一个时间,,每次需要合并的时间等于合并的石头总和,然后让你求合并这堆石头需要的最少的解决时间,如果没有解决方案就输出0。

思路:emmm…拿到题看着也不难,以前好像也遇见过这样子的题目。好的,我是废物,做了一个小时愣是想不到dp…

参考大佬思路:
状态转移:dp[I][j][k]表示从I到j的石头区间里分成k堆的情况

当k=1时,石头可以从L到R堆合并为1堆有dp[I][j][k]=max(dp[I][j][k],dp[I][j][d]+num[j]-num[I-1],这里的d我们表示堆数目(L<=d<=R)。num是前缀和的数组。

当k!=1时候,石头可以理解为一堆石头A与k-1堆石头B的合并,也就有dp[I][j][k]=max(dp[I][j][k],dp[I][e][1]+dp[e+1][j][k-1]),这里的e表示的是A和B的分界点,也就是普通的区间dp了,接下来的代码就比较清晰了。

#include<iostream>
#include<cstring>
#define mem(s,t) memset(s,t,sizeof(s))
using namespace std;
int dp[105][105][105];
int val[105];
int sum[105];
int main()
{int n,l,r;while(cin>>n>>l>>r){mem(sum,0);for(int i=1;i<=n;i++){cin>>val[i];sum[i]=sum[i-1]+val[i]; //求前缀和,方便计算}mem(dp,0x3f);for(int i=1;i<=n;i++){dp[i][i][1]=0;}//初始化,每个石头之间没有合并所以他们花费的时间是0for(int i=2;i<=n;i++){//区间跨度for(int j=1;j<=n;j++){//起点int e=i+j-1;if(e>n)break;//终点不能大于nfor(int k=i;k>=1;k--){//枚举堆数if(k==1){for(int z=l;z<=r;z++)dp[j][e][k]=min(dp[j][e][k],dp[j][e][z]+sum[e]-sum[j-1]);}else{for(int z=j;z<e;z++)dp[j][e][k]=min(dp[j][e][k],dp[j][z][1]+dp[z+1][e][k-1]);}}}}if(dp[1][n][1]!=0x3f3f3f3f)cout<<dp[1][n][1]<<endl;else cout<<0<<endl;}
}

南宁
A-Abiyoyo
题意:属实手速签到

#include<bits/stdc++.h>
using namespace std;
int main(){int t,k;scanf("%d",&t);while(t--){scanf("%d",&k);for(int i=0;i<k;i++){printf("Abiyoyo, Abiyoyo.\n");}printf("Abiyoyo, yo yoyo yo yoyo.\n");printf("Abiyoyo, yo yoyo yo yoyo.\n");}return 0;
}

F
F 题 The Chosen One
题意:

有n个小孩排成一排,每次除去站在奇数位置上的小孩,问最后剩下哪一个

思路:自己动手看看模拟一下与样例,就会发现求得是小于n的2的最大次幂。
好像用py跟jave简单。

#include <bits/stdc++.h>  using namespace std; char anss[205][100],temp[205][100];
int jin=0,cnt=0,i,j,t,lang[200];int main()
{anss[0][0]='1';for(i=1;i<=200;i++){for(j=0;j<=cnt;j++){anss[i][j]=((anss[i-1][j]-'0')*2+jin)%10+'0';jin=((anss[i-1][j]-'0')*2+jin)/10;}while(jin){anss[i][++cnt]=jin%10+'0';jin=jin/10;}lang[i]=cnt;}for(i=1;i<=200;i++){for(j=lang[i];j>=0;j--){temp[i][lang[i]-j]=anss[i][j];}    }cin>>t;while(t--){char str[200];cin>>str;for(i=0;i<200;i++){int flag1=0;int flag2=0;if(strlen(str)<lang[i+1]+1){cout<<temp[i]<<endl;break;}if(strlen(str)>lang[i]+1&&strlen(str)==lang[i+1]+1){if(strcmp(temp[i+1],str)>0){cout<<temp[i]<<endl;break;}}if(strlen(str)==lang[i]+1&&strlen(str)==lang[i+1]+1)if(strcmp(temp[i],str)<=0&&strcmp(temp[i+1],str)>0){cout<<temp[i]<<endl;break;}}}
}

我的博客即将同步至腾讯云+社区,邀请大家一同入驻:入驻到云+社区

2017 年ICPC 中国大陆区域赛铜牌题解相关推荐

  1. 第 45 届国际大学生程序设计竞赛(ICPC)亚洲区域赛(济南)(重现赛)

    第 45 届国际大学生程序设计竞赛(ICPC)亚洲区域赛(济南)(重现赛) 导语 涉及的知识点 题目 C D G J M 参考文献 导语 日常的队内集训,开始的时候状态其实很好,但是到了后两题就出现了 ...

  2. 区域赛铜牌专题(一)

    区域赛铜牌专题 题号 题目 知识点 HDU 5532 Almost Sorted Array 贪心,LIS HDU 5533 Dancing Stars on Me HDU 5536 Chip Fac ...

  3. XMU区域赛选拔赛题解

    XMU区域赛选拔赛题解 B.是谁打了奶奶 Description 最近发生了一起骇人听闻的打奶奶事件,凶手就是--惊奇队长. 惊奇队长是在电车上打的奶奶,那么我们就来看一个和电车有关的问题. 某市修建 ...

  4. 第 45 届国际大学生程序设计竞赛(ICPC)亚洲区域赛(南京)签到题K Co-prime Permutation,L Let‘s Play Curling

    序 emmm因为没时间补题(虽然签到有四题),所以只能先放两个签到. 这是比赛链接:https://ac.nowcoder.com/acm/contest/10272 这是题解链接:2020年ICPC ...

  5. icpc 2020沈阳区域赛补题

    2020沈阳区域赛 H 这题是一道典型dp 但是需要用滚动数组优化空间, 在状态转移的时候需要考虑一下是否满足天数条件. 我真的吐了,debug改了半天之后发现错误原因是: 排序应该是 sort(v+ ...

  6. ICPC 2020 亚洲区域赛济南站 赛后总结

    很感动,拿铜了! 呜呜,我的第一个国三. 榜单在最后! (想看如何拿的铜,直接看周天的正式赛) 学校上周末就放寒假了,我和两个队友(xjw学长和hxy[华宝])在学校多呆了一周. 回想起来,这一周确实 ...

  7. 第 45 届国际大学生程序设计竞赛(ICPC)亚洲区域赛(昆明),签到题HIL

    H. Hard Calculation 链接:https://ac.nowcoder.com/acm/contest/12548/H 来源:牛客网 题目描述 Hooray! It is the fir ...

  8. 第 45 届国际大学生程序设计竞赛(ICPC)亚洲区域赛(昆明),签到题4题

    文章目录 H. Hard Calculation I. Mr. Main and Windmills L. Simone and graph coloring J.Parallel Sort 补题链接 ...

  9. 第 46 届国际大学生程序设计竞赛(ICPC)亚洲区域赛(南京),签到题5题

    文章目录 A.Oops, It's Yesterday Twice More M.Windblume Festival C.Klee in Solitary Confinement H.Crystal ...

最新文章

  1. 【leetcode】力扣刷题(3):无重复字符的最长子串(go语言)
  2. jmeter--入参为json类型
  3. linux下c的学习
  4. 回溯法解决工作分配问题及分析
  5. Android自定义控件ImageViwe(一)——依据控件的大小来设置缩放图片显示
  6. 并查集路径压缩_第二十五天:并查集
  7. python mysql 数据类型_mysql学习:mysql数据类型有哪些?
  8. 拒绝996,选对框架很关键!看这里。。。。。。
  9. 想要轻松制作GIF图片,来看篇超全面的分析!
  10. 系统升级时,数据库脚本执行注意事项,血的教训
  11. Pandas python
  12. Cloud 团队:让 TiDB 在云上跳舞 | PingCAP 招聘季
  13. 抽35块树莓派新品单片机送给可爱的你们
  14. Java9中使用jpa,如何正确地在Spring Data JPA和Jackson中用上Java 8的时间相关API(即JSR 310也即java.time包下的众神器)...
  15. matlab模糊解耦,模糊神经网络解耦MATLAB源程序
  16. 擎天架构加持,华为云Stack打算在混合云市场怎么打?
  17. 魔音Morin(聚合音乐播放器)
  18. Linux solr 安装教程
  19. python实现微信发消息
  20. 占20列用c语言怎么表示,十六万的数字格式怎么写

热门文章

  1. 嵌入式设计 | 基于51单片机的TEA5767 FM收音机
  2. 如何在线观看CCTV的电视节目
  3. elementui 下拉框滚动条样式修改
  4. css safari 字体模糊,悬停在Safari中的CSS过渡减轻了某些字体的颜色
  5. linux c语言sleep的时间实验
  6. 计算机组成课程设计之二——微程序控制的存储器读写系统设计
  7. 运行cartographer的gRPC demo,附百度文件链接
  8. 基于最小均方误差短时谱估计的语音增强
  9. CSDN 职场论坛问答精选1
  10. 这款QLED电视机实用性怎么样,一起来了解一下