B

题目链接

http://acm.hust.edu.cn/vjudge/problem/24840

题意

给出一个天枰的文字描述,问最少修改多少次可以使天枰的所有支点都是平衡的。

题解

找一个基准(depth*weigh),把其他所有的重量的基准都修改为这个值,那么只要这个基准的出现次数最多,那么修改的次数也就越少。sum-基准次数。

代码

#include<iostream>
#include<queue>#include<cstdio>#include<cstring>#include<string>#include<cmath>#include<string>#include<cctype>#include<algorithm>#include<vector>#include<map>
using namespace std;int main()
{   int t;scanf("%d",&t);while(t--){string st;cin>>st;int n=st.size();int cnt1=0,cnt2=0;map<long long,int>num;int cnt3=0;for(int i=0;i<n;i++){if(st[i]=='['){cnt1++;cnt2++;} //出现一个'['深度就+1else if(isdigit(st[i]))  //只要是数字就开始“基准”处理{   long long numm=st[i]-'0';i++;while(isdigit(st[i])){numm=numm*10+st[i]-'0';i++;if(i>=n){break;}}i--;long long aa=1;for(int j=0;j<cnt1;j++)aa*=2;numm*=aa;num[numm]++;cnt3++;}else if(st[i]==']')cnt1--;  //出现一个']'深度-1}map<long long,int>::iterator it=num.begin();//用一个map映射基准出现的次数,最后找到出现次数最多的基准。int ans=-1;for(;it!=num.end();it++){ans=max(ans,it->second);}if(cnt2==0)printf("0\n");else printf("%d\n",cnt3-ans);}return 0;
}

C

题目链接

http://acm.hust.edu.cn/vjudge/problem/22883

题意

切披萨,问n刀下去,披萨可以被切成几块。

题解

ans=1+((n+1)*n)/2;

D

题目链接

http://acm.hdu.edu.cn/showproblem.php?pid=4334

题意

给出5个数的集合,问能否从每个集合中选出一个数,使5个数之后等于0。

题解

先把前两个集合的数的和依次求出来,得到新集合n1,然后同样处理第三第四个集合得到新集合n2,遍历第五个集合中的每个元素x,n=n1+x,二分查找在n2集合中是否存在n的相反数。

代码

#include<iostream>
#include<queue>#include<cstdio>#include<cstring>#include<string>#include<cmath>#include<string>#include<cctype>#include<algorithm>#include<vector>using namespace std;long long a[7][300];int main(){int t;scanf("%d",&t);while(t--){for(int i=0;i<7;i++)for(int j=0;j<300;j++)a[i][j]=0;int n;scanf("%d",&n);for(int i=0;i<5;i++)for(int j=0;j<n;j++)scanf("%lld",&a[i][j]);vector<long long>s1;vector<long long>s2;for(int i=0;i<n;i++){for(int j=0;j<n;j++){long long t=a[0][i]+a[1][j];s1.push_back(t);}} //处理第一第二个集合for(int i=0;i<n;i++){for(int j=0;j<n;j++){long long t=a[3][i]+a[4][j];s2.push_back(t);}} //处理第三第四个集合sort(s1.begin(),s1.end());  //排序后二分查找sort(s2.begin(),s2.end());int ok=0;for(int i=0;i<n;i++){for(int j=0;j<s1.size();j++){long long t=a[2][i]+s1[j];int op=lower_bound(s2.begin(),s2.end(),-t)-s2.begin();//二分查找if(s2[op]+t==0){ok=1;break;}}if(ok==1)break;}if(ok==1)printf("Yes\n");else printf("No\n");}return 0;}

F

题目链接

http://acm.hdu.edu.cn/showproblem.php?pid=4346

题意

只要存在i位置为R,j位置也为R,并且(i+j)/2位置为G,那么这条路就是美丽的,问最多可以构造出多少条美丽的路。

题解

正面构造感觉特别难,不能把所有情况按某种思路一次找出来。所有就反着来了,美丽的串=总的串数-不美丽的串。而不美丽的串,首先满足条件,相邻的两个R之间的距离为奇数,易得。其次,所有的R之间的距离应该是相同的。反正法,假如R1,R2,R3,R1与R2之间的距离不等于R2与R3之间的距离,因为奇数+奇数=偶数,那么R1与R3之间距离是偶数,存在(R1+R3)/2点,但这个点不是R2,是G,所有事美丽串,与条件矛盾。简而言之就是R1与R3中间的判断点一个要是个R。
然后就好了,遍历R的起点,遍历所有奇数距离,判定是否所有的R都满足不美丽串条件,最后total-unbea。

代码

#include<iostream>
#include<queue>#include<cstdio>#include<cstring>#include<string>#include<cmath>#include<string>#include<cctype>#include<algorithm>#include<vector>using namespace std;const long long mod=1e9+7;int main(){   std::ios::sync_with_stdio(false);int t;cin>>t;while(t--){string st;cin>>st;int unknow=0,r_num=0;for(int i=0;i<st.size();i++){if(st[i]=='R')r_num++;if(st[i]=='?')unknow++;}int n=st.size();long long unbea=0;if(r_num==0)unbea++;  //R为0时,一种不美丽串特判for(int i=0;i<n;i++){   if(st[i]=='R'||st[i]=='?'){int zz=0;if(st[i]=='R')zz=1;  //判断初始的一个R是否满足if(zz==r_num){unbea=(unbea+1)%mod;}for(int j=1;j+i<n;j+=2){   int z=zz;for(int k=i+j;k<n;k+=j){if(st[k]=='R')z++;if(st[k]=='G')break;if(z==r_num){unbea=(unbea+1)%mod;} //满足一次就+1}}}}long long cc=1;for(int i=0;i<unknow;i++){cc=(cc*2)%mod;} //这开始的时候写傻逼了  居然写成了cc*=2%mod; 这分明就没有Mod嘛。。。long long ans=cc-unbea;cout<<ans<<endl;}return 0;}

G

题目链接

http://acm.hdu.edu.cn/showproblem.php?pid=4371

题意

一个博弈问题,一个人x开始写0=s1,然后另外一个人y任选一个数加上去得到s2,然后x可以有两个选择,一个在n的基础上可以任意加一个数得到s3,s3不能大于n,或者任意减一个数得到s3,但减的时候s3>s1,即s3必须大于前前个数。当一个人无法操作时,即认输。

题解

一个贪心的博弈,首先我们排除选大的数的情况- -,因为你选大数,别人就选小的数求差,那么你就只能一直选大的数,直到最后输。这个游戏是由最小的数和上限来决定输赢的,上限/最小的数=奇数,则Alice赢,偶数则Bob赢。上面已经分析了,选大数一点赢的希望都没有,那就只有选最小的数,两个人都一直选最小的数,知道最后一个人没办法选了,决出胜负。

代码

#include<iostream>
#include<queue>#include<cstdio>#include<cstring>#include<string>#include<cmath>#include<string>#include<cctype>#include<algorithm>#include<vector>using namespace std;int main(){int t;scanf("%d",&t);for(int i=1;i<=t;i++){int n,m;scanf("%d%d",&n,&m);int minx=1e9+9;for(int j=0;j<m;j++){int z;scanf("%d",&z);minx=min(minx,z);}int t=n/minx;if(t%2==1)printf("Case #%d: Bob\n",i);else printf("Case #%d: Alice\n",i);}return 0;}

8月11日 集训测试相关推荐

  1. 【名企招聘】5月11日18点,学科网岗位招聘来啦~Java、前端、UI、测试等众多岗位供你选择

    为了帮助企业更好的应对用人难的挑战,CSDN面向所有企业全新升级了CSDN2022雇主品牌计划,在企业发展.吸引人才.连接人才.宣传公司多个维度提供专属的支持. ----本次为学科网专场---- 直播 ...

  2. 第二期安全狗讲坛3月11日开始

    2019独角兽企业重金招聘Python工程师标准>>> 3月4日下午3点,第一期"安全狗讲坛"在安全狗论坛开展,在广大枸杞的热心参与下,整个讲坛火热且有序,并在一 ...

  3. 鸿蒙生态系统第一梯队,鸿蒙系统9月11日,将有望正式成为国际第三大手机操作生态系统...

    原标题:鸿蒙系统9月11日,将有望正式成为国际第三大手机操作生态系统 众所周知,当时华为鸿蒙系统还处于1.0版本的时候,这项技术就已经被运用到了荣耀智能屏上,目前该系统也已经过渡到了华为的手表上,经过 ...

  4. 鸿蒙系统手机9月11日,鸿蒙系统9月11日,将有望正式成为国际第三大手机操作生态系统...

    原标题:鸿蒙系统9月11日,将有望正式成为国际第三大手机操作生态系统 众所周知,当时华为鸿蒙系统还处于1.0版本的时候,这项技术就已经被运用到了荣耀智能屏上,目前该系统也已经过渡到了华为的手表上,经过 ...

  5. 鸿蒙系统9月11号上市吗,9月11日鸿蒙系统2.0要搭载华为全家桶来了,你期待吗?...

    如何看待华为将于2020年9月11日发布鸿蒙系统2.0版本?对此你有何据<科创板日报>消息,华为鸿蒙系统(HarmonyOS)将于今年9月11日举行的华为开发者大会上发布2.0版本.201 ...

  6. 阴阳师服务器维修拖延,阴阳师12月11日更新维护公告 阴阳师百闻牌联动开启

    原标题:阴阳师12月11日更新维护公告 阴阳师百闻牌联动开启 12月11日,阴阳师进行了新版本的更新维护,此次的更新开启了终章以及阴阳师百闻牌的联动活动,很多玩家还不清楚具体的更新内容,下面就来为大家 ...

  7. 【历史上的今天】9 月 11 日:Adobe 公司联合创始人出生;现代游戏机鼻祖诞生;谷歌推出 Android Pay

    整理 | 王启隆 透过「历史上的今天」,从过去看未来,从现在亦可以改变未来. 今天是 2022 年 9 月 11 日,21 年前,一起事件除了改变美国的许多家庭,也一定程度上改变了全世界以航天业为主的 ...

  8. dnf手游服务器维护时效,DNF手游延期到2021年2月11日是真的吗 延期日期详细说明...

    DNF手游延期大家都已经知道了,但是很多玩家看到贴吧上写的期到2021年2月11日,本次就为大家带来了DNF手游延期到2021年2月11日是真的吗,也是延期日期详细说明,希望能帮到大家. DNF手游延 ...

  9. 6月12gta5服务器维护,gta520176月11日这会更新什么了 | 手游网游页游攻略大全

    发布时间:2016-02-29 CF2016年8月11日对服务器进行例行维护.这次维护大家会感觉没什么可更新的呀.来看看99单机小编熊卜卜的CF8月11日服务器维护更新公告 修复火线币商城bug哈. ...

最新文章

  1. mysql在电脑哪里启动项_所有电脑和主板开机选择启动项的快捷键
  2. python代码大全o-python文件编码及执行
  3. [SCOI2007] 蜥蜴 (最大流)
  4. QT写入cmd命令并且调用,以及指定路径新建文件夹
  5. 泛型与操作符重载杂谈
  6. iOS开发零碎知识点
  7. 如何判断数据背离正态分布?
  8. SharePoint 2013的REST编程基础
  9. 数据特征分析:2.对比分析
  10. centos6.8 安装python3.6
  11. Android学习小Demo(9)一个To Do List的实现
  12. 关于jenkins打包部署
  13. windows 安装 win32 win32com模块
  14. PID解释与离散化算法公式
  15. windbg分析BSOD dump文件实战
  16. 计算机专业分数线最新,计算机专业近三年录取分数线分析
  17. 动画练习-360度旋转-animation
  18. Android opengles 动态调节高斯模糊
  19. c++ opencv保存图片
  20. 在cygwin安装HOMER和最全使用说明

热门文章

  1. PHP语法基础3.1
  2. 使用PyInstaller将python打包成exe
  3. 飞腾cpu服务器浪潮信息,推动产业进程 浪潮发国产飞腾CPU服务器
  4. android 8(O)预装APP到data/app目录
  5. android微信打出彩色字体,如何用微信打出颜色各异的字
  6. Qt学习之QMainWindow(一)QMainWindow简介
  7. Outlook收件箱总显示有未读邮件问题
  8. LTE语音终极解决方案——VoLTE
  9. Go语言学习之map
  10. 抄底的艺术——量化交易之路