SDKD 2016 Winter Single Training B, div2 出题总结
来源:互联网 发布:淘宝小说 编辑:程序博客网 时间:2024/05/19 09:43
0* :A 本来0*准备了一道很水的01背包,套板子就能过的那种,就不说了。
1* -1 :E HDU 5491 The Next
这个题没有出有点出乎意料,可能也因为打的人比较少,这题是去年网赛的题,就是给了一个数字,找出二进制数在a~b之间的,比这个数大的第一个数,最简单的方法就是把这个数字用二进制表示出来,存储二进制的逆序,如果要比它大,一定是在它某一个为0的位置上变成1,又要求最小,所以从低位向高位就可以了,每到一个为0的地方,判断将它置1,前面全部置0后1的个数是否满足条件,若所有1的个数仍然比b大,则向后枚举下一个为0的位置,直到最高位。若1的总数大于a小于b,则直接把该位置为1,之前为0,这个数就是最小的数。若总数小于a,则从最低位开始往上设置1,由此保证这个数是满足要求的最小的数。(咦我不会调行间距了凑合看吧。。。)
推荐的套路题:Codeforces div2 A B C
1* -2:C HDU 5093 Battle Ships
这题是个二分图,也是当时我第一次学二分图的时候做的题,是个很经典的建图,具体的就是先按行划分,再按列划分,然后建图,求一个最大匹配就可以了。
*ooo 行 1ooo 列 1ooo
o### o### o###
**#* 22#3 23#4
ooo* ooo4 ooo4
然后建出来图就是这样的:
二分图的讲解:我是链接
推荐的基础题:就是这个题。
1* -3:D HDU 1954 POJ 1635 Subway Tree Systems
这道题我没有写题解,是POJ上Northwestern Europe 2003的题。。。但我记得是道很好的题,题目看起来有点麻烦,大意就是给出搜索一棵树的序列,0表示向下搜索,1表示回溯,然后问你搜索的两棵树能不能经过变换变成一棵树,就是是否是同构的,将树的每个子树都用一个字符串来表示,每次搜完一个节点就把所有的子树sort一下,按字典序排列,最后判断两棵树得到的串是不是一样就可以了。代码可以参考下面这份:
#include <iostream>#include <cstdio>#include <string>#include <vector>#include <algorithm>using namespace std;int T,n,k,sum,t;string str1, str2;string min_pre(string str){ vector<string> box; string ret = ""; int equal = 0, st = 0; for(int i = 0; i < str.size(); i++){ if(str[i] == '0') equal++; else equal--; if(equal == 0){ if(i - 1 > st + 1) box.push_back("0" + min_pre(str.substr(st + 1,i - 1 - st)) + "1"); else box.push_back("01"); st = i + 1; } } sort(box.begin(), box.end()); for(int i = 0; i < box.size(); i++) ret += box[i]; return ret;}int main(){ int ca; scanf("%d", &ca); while(ca--){ cin >> str1 >> str2; if(min_pre(str1) == min_pre(str2)) printf("same\n"); else printf("different\n"); }}
1* -4:B Codeforces 628D Magic Numbers
这个是最近做的题,当时把所有的题目教的之后教主说div2就扔D太快了,这个题其实还好,数位DP我感觉套路都差不多,,除了特别难的那种,只要真的做会了一道,大部分简单的就都会了,就是调起来比较麻烦。这个题是求a到b中有多少个数是m的倍数并且是d-magic的,就是只有偶数位出现过的,那么记忆化就可以开成二维的,第一维是已经求得的,长度为i时满足magic条件的数的个数,第二维是对m取余的余数,然后就是细节问题了。这个的话参考代码没什么意义,理解起来不太容易,不过还是放一下吧。我的代码
推荐的基础题:我是链接
- SDKD 2016 Winter Single Training B, div2 出题总结
- SDKD 2016 Summer Single Contest #01.B
- SDKD 2016 Summer Single Contest #02.B
- SDKD 2016 Summer Single Contest #03.B
- SDKD 2016 Summer Single Contest #12 .B
- SDKD 2016 Summer Single Contest #13 .B
- SDKD Single training #2未完成题目
- SDKD Single training #4未完成题目
- SDKD Single training #6未完成题目
- SDKD Single training #8未完成题目
- SDKD Single training #10未完成题目
- SDKD 2017 Spring Team Training A--B
- SDKD 2017 Spring Team Training B--I
- SDKD 2017 Spring Team Training B--D
- SDKD 2017 Summer Single Training #01(训练赛1)
- SDKD 2017 Summer Single Training #02 (训练赛2)
- Tri_integral Winter Training 0 比赛总结
- SDKD 2016 Summer Single Contest #01.C
- 字符编码一:Unicode 与 UTF-8之间的关系
- Cook-Torrance光照模型附 shader代码
- 基于原型链的继承方式
- 时间入库问题:Incorrect datetime value: '' for column 'createTime' at row 1
- 使用plsql两种快速度修改表内容的方法以及区别
- SDKD 2016 Winter Single Training B, div2 出题总结
- Codeforces 119C Education Reform【dp+路径输出】
- 菜鸟之路——Spring MVC(三)DispatcherServlet详解
- TOMCAT服务器不写端口号、不写项目名访问项目、虚拟目录配置
- mysql允许远程访问
- 登陆
- 71颜色方块(5)84(6)97(7)108(8)
- Java构建器
- Eclipse Class Decompiler——Java反编译插件