Codeforces Round #236 (Div. 1)(A, B, C, D)
来源:互联网 发布:软件需求确认表 编辑:程序博客网 时间:2024/05/21 06:38
code链接:https://github.com/9974/Codeforces/tree/master/236div1
A
样例做法:从1连到n,再从2到n。。。。直到连了2*n+p。。不知道为啥。。
能合理解释的做法:显然图平均分布会更好,用优先队列,每次取出度最小的两个点连边即可
B
先统计题目给你的所有数的总的权值, 预处理每个前缀最大公约数
从后往前枚举, 统计一下当前最大公约数产生的影响, 如果影响为负数,那么就消去,
权值减去这个负数,同时更新前缀最大公约数。
C
要对矩阵有一定的理解, A^k矩阵可以表示 对于任意的i走k步到j有多少种情况,这里题目只要考虑是否到达就可以了。
当k足够大时, 要使A^ k每个数都是正整数,也就是说从图中的每个点出发走k步能到达其它所有点,
要注意题目说的一定存在A[s][s] > 0, 意思是可以原地停留, 那么 只要判这幅图是不是强连通就可以了。
D
先预处理处dp[i][j]表示 i个不同的数和为j的情况数(无序), 你可以用 背包dp,注意总共也不会超过50个数, O(50*n^2)
也可以O(n^2)预处理, 学习叉姐的做法
然后对于每个询问,枚举a_i-b_i的总和s, 剩下的n-s先放好, 然后把dp出来的k段用插空法插入到里面,情况数为C[k+n-s][k]
然后要考虑k段的顺序,那么就要乘以A[k](阶层)
1 0
- Codeforces Round #236 (Div. 1)(A, B, C, D)
- Codeforces Round #198 (Div. 1)(A,B,C,D)
- Codeforces Round #232 (Div. 1)(A,B,C,D)
- Codeforces Round #243 (Div. 1)-A,B,C-D
- Codeforces Round #305 (Div. 1) A,B,C,D题解
- Codeforces Round #310 (Div. 1) A B C D题
- Codeforces Round #364 (Div. 1) A B C D E
- Codeforces Round #179 (Div. 2)A、B、C、D
- Codeforces Round #186 (Div. 2)A、B、C、D、E
- Codeforces Round #202 (Div. 2) (A、B、C、D)
- Codeforces Round #211 (Div. 2)(A,B,C,D)
- Codeforces Round #220 (Div. 2)(A,B,C,D)
- Codeforces Round #231 (Div. 2)A, B, C, D
- Codeforces Round #258 (Div. 2)-(A,B,C,D,E)
- Codeforces Round #246 (Div. 2) A,B,C,D
- Codeforces Round #261 (Div. 2) A,B,C,D,E
- Codeforces Round #259 (Div. 2) A/B/C/D
- Codeforces Round #257 (Div. 2) A/B/C/D
- 字符集与编码格式
- vim中的杀手级插件: vundle
- JAVA梳理(1)——static修饰属性的实际应用
- JAVA概述(11) 面向对象(static静态详解)①
- adb命令
- Codeforces Round #236 (Div. 1)(A, B, C, D)
- R.java不能自动生成资源ID的问题
- 装饰器模式
- android中文api (59) —— TabHost.TabSpec
- js,jq发送短信倒计时
- hdu 2048 and 2049(错排问题)
- android 在布局中id与orientation的关系
- iOS安全攻防(二十二):static和被裁的符号表
- 地理信息系统(GIS)的前沿技术综述