Problem C---zoj 4060 Flippy Sequence

解题思路:要求进行两次操作,每次操作选择一个区间,问将s串变成t串中所选的两个区间构成的4元组有多少个。做法:找出s串与t串不同块的个数,然后做个简单的判断即可。

AC代码:

 #include <bits/stdc++.h>
using namespace std;
typedef long long LL;
const int maxn=1e6+;
int T,n,cnt,answer;char s1[maxn],s2[maxn];
int main(){
while(~scanf("%d",&T)){
while(T--){
scanf("%d %s %s",&n,s1,s2);cnt=;
for(int i=;i<n;++i)//统计s串与t串不同块的个数
if((i==&&s1[i]!=s2[i])||(i>&&s1[i-]==s2[i-]&&s1[i]!=s2[i]))cnt++;
if(!cnt)answer=n*(n+)/;//全部相同:1+...+n
else if(cnt==)answer=*(n-);//只有一个不同块,①不同和不同进行反转,②不同和相同进行反转
else if(cnt==)answer=;//有两个不同块,三种操作,答案肯定为6
else answer=;//至少有3个不同块,无法实现2次操作,答案只能为0
printf("%d\n",answer);
}
}
return ;
}

Problem E---zoj 4062 Plants vs. Zombies

(补)解题思路:典型的最大化最小值,二分解法再加个贪心,详解看代码。

AC代码:

 #include<bits/stdc++.h>
using namespace std;
typedef long long LL;
const int maxn=1e5+;
int T,n;LL m,l,r,mid,a[maxn],d[maxn];
bool check(LL x){
///二分总防御值,对于固定的防御值x,显然花园里的每个植物都要不小于x,因此贪心地从左往右寻找每一个防御值小于x的植物,对它和它右侧的植物反复浇水。
LL step=;
for(int i=;i<n;++i)d[i]=x/a[i]+(x%a[i]?1LL:0LL);///计算每个至少需要浇水的次数
for(int i=;i<n;++i){
if(!d[i]){
if(i!=n-)step++;///如果最后一棵植物需要浇水的次数为0,说明其防御值不小于当前x,则无需计数
}else{
step+=d[i]*2LL-1LL;///累加从i-1走到i这1步+浇完第i棵植物后花费的总步数为2*d[i]-1
d[i+]-=(d[i]-1LL);///第i+1棵植物需要浇水的次数要减去(d[i]-1)
if(d[i+]<)d[i+]=0LL;///如果d[i+1]<0,说明下一棵植物的防御值早已大于x,下次只需给它浇一次水(贪心向右移动一步)即可
}
if(step>m)return false;///如果所走步数超过m,则直接返回0,找较小的答案x
}
return true;
}
int main(){
while(~scanf("%d",&T)){
while(T--){
scanf("%d%lld",&n,&m);
for(int i=;i<n;++i)scanf("%lld",&a[i]);
l=1LL,r=1e18;
while(l<=r){///[l,r],退出条件是l>r,即l-1==r
mid=(l+r)>>;
if(check(mid))l=mid+1LL;///还有满足条件的最小值,继续最大化
else r=mid-1LL;///不满足条件,往左找
///cout<<l<<' '<<r<<endl;
}
printf("%lld\n",l-);///l-1相当于r,因为l会不断被最大化,直到超过r,则可以取l-1或者r就是最大化最小值答案
}
}
return ;
}

Problem J---zoj 4067 Books

解题思路:没有理解好题意,因此赛场上丧心病狂调了2小时的bug,罚时巨多QWQ,其实就是个简单的贪心=_=。题意:DreamGrid带的钱会在1~n本书中从前往后进行挑选,如果当前剩余的钱不小于第i本书的价格,那么他就一定会买这本书,并且用剩余的钱减去第i本书的价格,直到买完m本书,否则就跳过不买第i本书籍。首先要明确的一点:从其往后有序挑选!!!分三种情况:①当m==n时,显然为"Richman";②当m<cnt_0时,此时可以买比m多的书籍,显然为"Impossible";③当m>cnt_0时,首先肯定会挑选cnt_0个价格为0的书籍,然后从前往后在价格不为0的书籍里面贪心挑选(m-cnt_0)本书籍,再加上后面不为0的最小价格-1即为DreamGrid可带的最多零钱。

AC代码:

 #include<bits/stdc++.h>
using namespace std;
typedef long long LL;LL ans;//注意用long long
const int inf=0x3f3f3f3f;
const int maxn=1e5+;
int T,n,m,cnt_0,pos,mina,s[maxn];
int main(){
while(cin>>T){
while(T--){
cin>>n>>m;cnt_0=;
for(int i=;i<n;++i)cin>>s[i],cnt_0+=s[i]?:;//统计0的个数
if(m==n)puts("Richman");
else if(cnt_0>m)puts("Impossible");//如果0的个数大于m,肯定可以买更多的书籍,显然此时为不可能
else{
m-=cnt_0,mina=inf,pos=,ans=;//m为剩下要挑选的本数
while(m)s[pos]?ans+=s[pos++],m--:pos++;//贪心选择价格不为0的m本,然后在后面选择一本最小的价格(不为0)-1加上来即为最优答案
for(int i=pos;i<n;++i)//从连续选择pos个不为0的数后,再从后面选择不为0的最小价格
if(s[i])mina=min(mina,s[i]);
cout<<(ans+=mina-)<<endl;
}
}
}
return ;
}

Problem M---zoj 4070 Function and Function

解题思路:签道题,注意:输入的x为0时要单独考虑。

AC代码:

 #include<bits/stdc++.h>
using namespace std;
typedef long long LL;
int T,x,k,s[]={,,,,,,,,,};
int g(int y){
int ans=;
while(y){ans+=s[y%];y/=;}
return ans;
}
int main(){
while(~scanf("%d",&T)){
while(T--){
scanf("%d%d",&x,&k);
if(!x)x=k&?:;//x为0要单独考虑
else{
for(int i=;i<=k&&x;++i){
x=g(x);
if(!x){x=(k-i)&?:;break;}
}
}
printf("%d\n",x);
}
}
return ;
}

2018 ACM-ICPC亚洲区域赛(青岛)的更多相关文章

  1. 2015 ACM / ICPC 亚洲区域赛总结(长春站&北京站)

    队名:Unlimited Code Works(无尽编码)  队员:Wu.Wang.Zhou 先说一下队伍:Wu是大三学长:Wang高中noip省一:我最渣,去年来大学开始学的a+b,参加今年区域赛之 ...

  2. Known Notation括号匹配类问题(2014年ACM/ICPC 亚洲区域赛牡丹江)

    题意: 给你数字或 * 的串,你可以交换一个*和数字.在最前面添1.在一个地方插入*,问你使串满足入栈出栈的(RNP)运算法则. 思路: 引用:https://blog.csdn.net/u01158 ...

  3. Digit sum (第 44 届 ACM/ICPC 亚洲区域赛(上海)网络赛)进制预处理水题

    131072K   A digit sum S_b(n)Sb​(n) is a sum of the base-bb digits of nn. Such as S_{10}(233) = 2 + 3 ...

  4. 第42届亚洲区域赛青岛站(2017icpc青岛)经验总结以及一些感想

    上一次写这种东西还是天梯赛,当时打完心里也是挺激动的,然后我们队也没有去参加省赛,但是过了一段时间我还是从那里面恢复了出来.因为我当时确实还是很菜的,当时连个暴力都不会,看着自己仅过的那些百度的题目确 ...

  5. 2014ACM/ICPC亚洲区域赛牡丹江站汇总

    球队内线我也总水平,这所学校得到了前所未有的8地方,因为只有两个少年队.因此,我们13并且可以被分配到的地方,因为13和非常大的数目.据领队谁oj在之上a谁去让更多的冠军.我和tyh,sxk,doub ...

  6. 2018 ACM-ICPC 亚洲区域赛青岛现场赛 —— Problem F. Tournament

    题面:http://acm.zju.edu.cn/contest-materials/qd2018/qd2018_problems.pdf 题意: n个骑士决斗K轮 要求是每个骑士只能跟另外一个骑士决 ...

  7. 【2018 ICPC亚洲区域赛南京站 A】Adrien and Austin(博弈)

    题意: 有一排n个石子(注意n可以为0),每次可以取1~K个连续的石子,Adrien先手,Austin后手,若谁不能取则谁输. 思路: (1) n为0时的情况进行特判,后手必胜. (2) 当k=1时, ...

  8. 【2018 ICPC亚洲区域赛徐州站 A】Rikka with Minimum Spanning Trees(求最小生成树个数与总权值的乘积)

    Hello everyone! I am your old friend Rikka. Welcome to Xuzhou. This is the first problem, which is a ...

  9. 【2018 ICPC亚洲区域赛沈阳站 L】Tree(思维+dfs)

    Problem Description Consider a un-rooted tree T which is not the biological significance of tree or ...

  10. 2014ACM/ICPC亚洲区域赛牡丹江现场赛总结

    不知道怎样说起-- 感觉还没那个比赛的感觉呢?如今就结束了. 9号.10号的时候学校还评比国奖.励志奖啥的,由于要来比赛,所以那些事情队友的国奖不能答辩.自己的励志奖班里乱搞要投票,自己又不在,真是无 ...

随机推荐

  1. Robotium结果的收集和失败重跑

    引用自 http://www.robotium.cn/archives/author/zered 测试用例: testsuite管理测试用例 测试结果的输出与收集? InstrumentationTe ...

  2. Design Pattern 设计模式1 - Strategy 1

    实现 : Defferent Heros attack Defferently. - 不同的英雄使用不用的招数 Strategy设计的思路: 基类A.更加小的基类B,新的继承类C: 1 从基类A中抽出 ...

  3. 网页 H5“线条” 特效实现方式(canvas-nest)

    先上图 (看博客空白处也可以呦): 前一阵浏览网站的时候,发现了这个好玩的东西,一直想找找怎么实现的,今天忙里偷闲,上网搜了一下,发现实现起来特别简单. 只需要在网页body里引入一个<scri ...

  4. 数据库DCL、DDL、DML、DQL

    SQL三部分:data manipulation language      DCL: (控制)管理用户权限(GRANT.REVOKE),数据库整体配置      DDL: (定义)作用于数据库,表, ...

  5. Hive两种访问方式:HiveServer2 和 Hive Client

        老版HiveClient:  要求比较多,需要Hive和Hadoop的jar包,各配置环境.       HiveServer2:   使得与YARN和HDFS的连接从Client中独立出来, ...

  6. 织梦DEDE后台定时分时段自动更新发布文章插件

    定时审核插件使用说明 一.立信CPA培训注册会计师考试网站 以超级管理员身份登录后台,依次选择[核心]à [定时审核管理],输入定时审核的时间段,如下图所示: 功能说明: 1. 可以设置若干时间段,在 ...

  7. vscode——配置终端集成bash和cmd

    前言 配置后bash和cmd是集成的,输入bash回车则进入bash,输入cmd回车则进入cmd 步骤 首先肯定是需要打开我们的vscode咯~ 进入终端设置 配置shell路径 根据自己的系统来复制 ...

  8. linux初级学习笔记四:Linux文件管理类命令详解!(视频序号:03_1)

    本节学习的命令:cat(tac),more,less,head,tail,cut,sort,uniq,wc,tr 本节学习的技能:目录管理 文件管理 日期时间 查看文本 分屏显示 文本处理 文件管理命 ...

  9. SQL Server2005+、MySQL、Oracle 数据库字典生成工具

    之前找的数据库字典生成工具基本上都依赖于 Office Com 组件,在不安装 Office的情况下无法使用.怒,于是自己用C# 写了一个.     特征如下:         一.支持的数据库 MS ...

  10. JavaScript正则表达式API

    1. [代码][JavaScript]代码     参考自<Core JavaScript Reference 1.5> JavaScript正则表达式有两种写法(随便哪种,看个人习惯): ...