概述
【第十场】
E:Welcome Party(思维)
I:Block Breaker
题解:bfs寻找当前位置上下左右四个方向还有方块的位置,是否会存在影响使得方块掉落,计数输出即可。
【第九场】
B:Rikka with Cake(离散化+树状数组)
E:Rikka with Game
题解:如果第一位是z,那么显然先手会选择把z->a,后手显然会把a->b,然后先手会选择结束游戏保证字典序不再变大。如果第一位是y,那么先手肯定不会去把y->z因为这样字典序会变大,后手也不会把y->z因为这样先手就可以把z->a,所以只有三种情况。第一,字符串以z开头,z->b,游戏结束;第二,字符串以y开头(可连续多个),把紧接着的第一个z->b(类型yyza这种),结束;第三,直接结束。
scanf("%s",&s);
for(int i=0;s[i];i++){
if(s[i]=='z'){
s[i]='b'; break;
}
if(s[i]=='y') continue;
else break;
}
printf("%sn",s);
F:Rikka with Coin(思维+枚举)
【第八场】
I:Calabash and Landlord(分类讨论)
J:Quailty and CCPC
题解:直接模拟,我怕失精度就用 (d*n)%10==5 判断是否等于0.5。注意队名长度不超过10,数组太长会tle。
if((d*n)%10==5){
sort(f,f+n,cmp);
int pos=d*n/10;
printf("%sn",f[pos].s);
}
else{
puts("Quailty is very great");
}
K:Roundgod and Milk Tea(思维)
【第七场】
A:A + B = C(思维)
F:Final Exam (贪心+思维)
J:Just Repeat(贪心+思维)
K:Kejin Player(期望dp+逆元)
【第六场】
因为太难了有点自闭就很咸鱼的没补题dbq我来了
等会。。
L:Stay Real
题解:因为是在最小堆轮流选取编号最大的节点,所以一定是先选完大的才选小的,排序从大到小轮流选取求和输出即可。
【第五场】
A:fraction(辗转相除法)
B:three arrays(01字典树)
D:equation(数学)
E:permutation 1(思维)
F:string matching
题解:拓展KMP裸题,只要考虑最长前后缀匹配是否匹配到最后一步,如果不是就+1再求和即可。
前置知识:字符串的模式匹配算法 —— BF算法、KMP算法和拓展KMP
G:permutation 2
递推式:dp[i]=dp[i-1]+dp[i-3],边界条件: dp[0]=dp[1]=dp[2]=1。
【第四场】
A:AND Minimum Spanning Tree( lowbit(x+1) )
C:Divide the Stones(找规律)
G:Just an Old Puzzle
题解:结论题。数字华容道,必然有解,只存在于如下3个细分情形:
- 若格子列数为奇数,则逆序数必须为偶数;
- 若格子列数为偶数,且逆序数为偶数,则当前空格所在行数与初始空格所在行数的差为偶数;
- 若格子列数为偶数,且逆序数为奇数,则当前空格所在行数与初始空格所在行数的差为奇数。
J:Minimal Power of Prime(数论)
【第三场】
F:Fansblog(威尔逊定理+逆元)
G:Find the answer(思维+multiset)
【第二场】
E:Everything Is Generated In Equal Probability (推荐一篇详细的博文)
J:Just Skip The Problem
题解:最优方案是一次确定一位,也就是总方案有n!,对mod=1e6+3取模那么小于mod直接暴力求取,否则为0 。
K:Keen On Everything But Triangle(静态主席树)
【第一场】
B:Operation(贪心+前缀线性基求最大异或和)
D:Vacation(思维+枚举)
E:Path(最短路+最小割)
最后
以上就是昏睡鸡为你收集整理的2019杭电暑期多校训练营 题解的全部内容,希望文章能够帮你解决2019杭电暑期多校训练营 题解所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复