2017.8.12 总结
来源:互联网 发布:mac winebottler 1.8 编辑:程序博客网 时间:2024/06/05 09:47
今天早上的模拟赛....还算简单....至少我还有三位数的成绩(大雾)QwQ。
T1的题意是给你一个字符串,由‘Z’,'W','B'组成,分别表示主语,谓语宾语,问你能不能组成一句或多句完整的句子(一句完整的句子包含一个主语,一个宾语,一个谓语)。在这些句子里面有可能包含主语从句和宾语从句,主语从句与宾语从句也分别由'Z','W',B'组成,若不能组成完整的句子(即为有毛病),则输出Yes,若可以,则输出No,并输出一共包含了几个从句。(字符串长度<=100000,数据组数<=100)
思路:这题直接扫一遍用一个栈模拟一下就行了,若碰到有连续的ZWB,若Z前是W,则应将ZWB替换成B再次压入栈中,否则替换成Z。若替换完再次出现,则继续替换,直到不再出现连续的ZWB为止。扫完之后判断一下栈中保存的是否只有Z了,如果还有剩下其他字母,则输出Yes就行了,否则就是No。
T2就是给你一个金字塔的层数n和k个矩形,并给你金字塔每层的左右端点x,y.且这个金字塔的上一层的x大于等于下一层的x,上一层的y小于等于下一层的y。问你用这k个矩形最大能覆盖多大的面积。(n<=20000,k<=100,x,y<=1e9)
思路:比赛时我就写了个n^2*k的暴力DP,拿了80分,F[i][j]表示前i层用了j个矩形的最大覆盖面积,在转移时分两种情况,一种是这个矩形是横着覆盖一行放过去,这种可以直接从F[i-1][j-1]转移过来;还有一种情况是这个矩形是覆盖多行的情况,这种我是用了一个for循环枚举覆盖几层,又因为金字塔随着高度上升宽度单调不递增,所以只用取i层的宽度就行了,对这两种情况取个max就是F[i][j]的答案。最后输出F[n][k]。
题解:在DP时我们可以看出,金字塔宽度是单调不增的,所以可以考虑斜率优化。用斜率优化瞎搞搞,去掉一些显然用不到的决策就可以了(雾)。
T3简化题意就是给你一个n,m,让你求小于等于m的n个位置的排列,使这n个数与m的最大公约数为1,求方案数mod1e9+7.(n,m<=1e15)
思路:由于这题范围很大,显然不能考虑暴力去做,所以我想到了容斥,即将所有的m的因数通过容斥求出小于等于m的数中有多少与m的最大公约数不为1的,记为res个。最后用m^n-res^n就行了,但是我不知道哪里写挂了只拿了60分...其实应该是满分做法的QAQ。。
- 2017.8.12 总结
- 2017.8.12 总结
- 2017.8.12总结
- 总结12
- 2017.8.10------总结+感悟
- 2017.8.10~11总结
- 2017.8.11 总结
- 2017.8.13 总结
- 2017.8.14 总结
- 2017.8.15 总结
- 2017.8.16 总结
- 2017.8.17 总结
- 2017.8.18 总结
- 自定义总结2017.8.28
- 总结 2017-12-12
- 周总结-09.09.12
- InStallShield 12 常见问题总结
- 11、12月总结
- NYOJ-108-士兵杀敌(一)
- 静态成员变量和静态成员函数 static
- PAT 甲级 1017. Queueing at Bank (25)
- js小例子
- Class.forName的作用
- 2017.8.12 总结
- ACM暑假训练日记 17.8.12
- C++学习笔记——认识C++
- HDU 6113 度度熊的01世界(dfs)
- 高性能PHP apache httpd 2.4.x使用mod_proxy_fcgi和php-fpm
- struts2之01了解和简单的运用
- Billboard
- 嵌套(任意层)JSON解析转换为Map
- Bone Collector(01背包)