- 博客(149)
- 收藏
- 关注
转载 The North American Invitational Programming Contest 2016 - Tourists ( LCA )
题意给出一棵n个点,n-1条边的树。现在计算所有标号为x到y的距离之和(满足y>x且y是x的倍数)思路关于树上任意两点距离之和,一开始想到树形dp,可树形dp,是对每条边,求所有可能的路径经过此边的次数,是求出边两端的点数,这条边被经过的次数就是两端点数的乘积。但是该题对计算的距离加了限制(y>x且y是x的倍数),显然不能用树形dp来做了。接...
2018-10-02 21:46:00
155
转载 HDU 6007 - Mr. Panda and Crystal ( 最短路+完全背包 )
题意岛上有n种宝石,有的宝石可以用魔力值合成,有的宝石不可以用魔力值合成。还有k种配方,即由几种宝石合成另一种。每一种宝石都有一个售价。现在,Panda有m的魔力值,问Panda得到的宝石最多能卖出多少钱。思路可以通过配方用消耗魔力值低的宝石去合成消耗魔力值低或者不能够用魔力值合成但是售价高的宝石,只要能够知道每个宝石最少需要多少魔力...
2018-10-02 20:15:00
135
转载 2018CCPC秦皇岛站参赛总结
CCPC秦皇岛站参赛总结NCC_9754 隋金禧9.25 青岛北乘火车至秦皇岛,火车上睡的超级难受,床太窄,还直不起身子。经常有下车的,基本每一小时醒一次。顺便被某两位战术传染的感冒了是什么操作。9.26 抵达秦皇岛,入住酒店,去北戴河陪小朋友看海,顺便被逼的学会了骑自行车,骑到鸽子窝大概是被鸽子放鸽子了。9.27 乘大巴到东北大学...
2018-10-01 10:41:00
230
转载 青岛理工大学邀请赛参赛感受
青岛理工大学邀请赛参赛感受NCC_9754 隋金禧 去年作为新生来这里参加邀请赛的场景还历历在目,没想到这么快就要一年了。今天带着这帮新生挤公交挤的心态爆炸啊…为什么这么多人排队…各种辗转终于到了青理工,食堂今年发餐票了,不是像去年那样志愿者拿着一张校园卡给我们疯狂打卡了2333。因为今年邀请赛办的太早了,听说山理石油海大都来的16...
2018-09-24 16:04:00
191
转载 HDU 6237 - A Simple Stone Game ( 分解质因数 )
题意有n堆石头, 每堆的初始数量为a1,a2,…..,an Bob每次可以从一堆里拿一块石头放到另一堆中, 问最少操作多少次能够使得每堆石头的数量能被一个数x(x>1)整除, 在这里, 我们默认0能被任何数字整除思路先分解质因数, x的取值只可能是石头总和sum的质因数 然后对每个质因数进行操作, 即使每堆石头变成0或...
2018-09-12 22:01:00
100
转载 Gym 101775A - Chat Group ( 组合数 , 逆元 )
题意n个人,大于等于k个人可以建一个群,问能建成多少个不同的群。 结果对1000000007取模思路公式很简单 ans=C(n,k)+C(n,k+1)+......+C(n,n)ans=C(n,k)+C(n,k+1)+......+C(n,n) 由于1 ≤ N ≤ 1091 ≤ N ≤ 109. 3 ≤ K ≤ 1053...
2018-08-31 21:44:00
154
转载 HDU 2255 - 奔小康赚大钱 ( 二分图最大权匹配 , KM算法 )
题意有n户人家和n间房。现在给出每户人家对每一间房的报价,求怎样分配房子才能使政府收入最大,输出最大收入。思路带权二分图的最优匹配问题,可由KM算法解决 km算法入门 【原创】我的KM算法详解 顶标内容讲的很好:KM算法 松弛度内容讲的比较好:二分图的最佳完美匹配——KM算法 匈牙利算法和FF...
2018-08-23 10:27:00
146
转载 HDU 4185 - Oil Skimming ( 二分图匹配, 匈牙利算法 )
题意给出一个 n * n的油田,现在要撇去一些油,但是每次只能撇掉1 * 2或者2 *1的油,问最多能撇多少次。思路匹配 建图:给每个“#”标序号后,dfs找每个油田位置的上下左右是否有油田,若有则建边。跑匈牙利匹配即可。AC代码#include <iostream>#include <...
2018-08-22 21:16:00
99
转载 HDU 1281 - 棋盘游戏 ( 二分图匹配 , 匈牙利算法 )
题意给出一个N*M (1 < N,M <= 100) 的棋盘,规定只有某些格子可以放“車”。要求放置的“車”不能互相攻击(不在同一行同一列) 在保证尽量多的“車”的前提下,棋盘里有些格子是可以避开的,也就是说,不在这些格子上放车,也可以保证尽量多的“車”被放下。但是某些格子若不放子,就无法保证放尽量多的“車”,这样的格子被...
2018-08-22 19:48:00
98
转载 HDU 6425 - Rikka with Badminton ( 组合数学,思维 )
题意有n个学生打羽毛球,其中有a个人没拍没球,b个人只有拍,c个人只有球,d个人有拍有球。 现在要求选出几个人组织一场比赛,一共有2n2n种情况,组织成功的条件是至少有2个拍1个球。求有多少种情况无法组织成功。思路一开始想组织成功的,但是发现情况太多太复杂,只要有2拍1球就可以,那么可能会有2排1球,2排2球,3排1球,3排2...
2018-08-21 09:38:00
119
转载 HDU 5444 - Elven Postman ( 二叉搜索树 )
题意一些精灵住在一棵二叉搜索树上(???),给出一个序列表示这棵二叉搜索树(输入n个数的第一个数为根节点,第二个数和这个根节点比较大小,假如大于当前根节点的值,就往右边的节点走,小于往左边的节点走),现在邮递员要给他们送信,求送信每次走的方向。思路题目太长了 其实看懂了题意就能知道是个裸的二叉搜索树模板AC代码#...
2018-08-17 10:05:00
79
转载 SGU 180 - Inversions ( 归并排序 / 树状数组 )
题意给出一个数组 求这个数组的逆序数思路分治(nlogn):将问题划分为规模更小的子问题,递归地解决划分后的子问题,再将结果合并。 考虑将数组a划分为两半得到b和c,于是a中的逆序对必然有三种情况: ①i,j都属于数列B的逆序对(i,j); ②i,j都属于数列C的逆序对(i,j); ②i属于B而j属于C的逆序对(i,...
2018-08-14 17:54:00
101
转载 HDU 1285 - 确定比赛名次 ( 拓扑排序 )
题意给出N个队伍标号为1-N 现给出一些队伍的胜负关系,比如 p1, p2表示 p1战胜了p2 求一个排名,要求输出时编号小的队伍在前。 数据保证不会有环思路拓扑排序:每次找入度==0的点, 将这个点和从它发射的边删掉。在常规的拓扑排序中,若找不到这样的点说明有环(故拓扑排序可以判断图中是否成环)。但这道题已经确保不会...
2018-08-14 16:41:00
89
转载 HDU 1251 - 统计难题 ( Tire树 )
题意给出一些单词,再给出一些前缀,求有多少个单词包含这个前缀。思路用map统计水过。赛后意外的发现自己的代码跑了900+ms,为什么这么多人才跑了60+ms (滑稽) 更好的算法是用Tire树(字典树)操作,查询前缀出现的次数,就开一个sum[],表示位置i被访问过的次数浅谈Trie树(字典树)AC代码(Tire,...
2018-08-14 15:48:00
106
转载 HDU 1166 - 敌兵布阵 ( 线段树 )
题意给出n个敌兵阵营的人数,给出一些操作命令: (1) Add i j , 第i个营地增加j个人 (2)Sub i j , 第i个营地减少j个人(j不超过30); (3)Query i j , 询问第i到第j个营地的总人数; (4)End 表示结束思路线段树模板题 /*单点覆盖,区间查询*/下面记录一下几个好...
2018-08-08 20:55:00
97
转载 UVA 10003 - Cutting Sticks ( 区间dp )
题意一个长为L ( L < 1000 ) 的木块, 有n个切割点 分别为c1, c2, c3, ……, cn (0 < ci < L) 每次切割的花费是被切木块的长度 求切割完木块的最小花费思路区间DP石子归并模板 分析 : 比赛的时候根本没多想,觉得切木块就是哈夫曼树,各种wr。 第一步和哈夫曼树...
2018-08-06 16:12:00
110
转载 HDU 5968 - 异或密码 ( 前缀异或 )
题意给出一个长为n的数组a,给出m个质询,每个质询给出一个数字,需要找到序列a中所有连续子序列的异或结果中与质询数字差的绝对值最小的一个,输出最长的这种连续子序列的长度思路异或前缀和+暴力 我们知道一个数异或自己即抵消异或效果 比如a^b^a = b , a^a^b = b 那么我们存下前缀和之后,想要求i~j的异或结...
2018-08-05 18:02:00
100
转载 CodeForces 371C - Hamburgers ( 二分搜索 )
题意做汉堡 先给出一个字符串表示每个汉堡的做法(B:bread, S:sausage, C:cheese) 给出三个值表示BSC分别有多少存货 给出三个值表示商店中BSC分别多少钱一份 给出一个值表示店主现在有多少卢布 问最多能做多少汉堡思路二分搜索 但是中间有很多溢出没处理好 用的unsigned long ...
2018-07-27 21:09:00
77
转载 POJ 2456 - Aggressive cows ( 二分:最大化最小值 )
题意n间屋,m头牛,使得牛跟牛之间的距离最远,防止牛打架思路类似的最大化最小值或者最小化最大值的问题,通常用二分搜索法就可以很好地解决。 solve(d): 可以安排牛的位置使得最近的两头牛距离不小于d 那么问题就变成了求满足solve(d)的最大的d 另外, 最近的间距不小于d也可以说是所有牛的间距都不小于d solv...
2018-07-27 21:05:00
133
转载 POJ 2250 - Compromise ( 最长公共子序列的DFS输出 )
题意(多组输入)给出两段文字, 输出最长公共子序列思路DFS回溯输出最长公共子序列AC代码#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>#include <...
2018-07-25 15:08:00
99
转载 UVA 10533 - Digit Primes ( 素数筛, 埃式筛法 )
题意求a~b内有多少个数满足本身是素数且各位相加后的结果也是素数思路1 不 是 素 数因为这个debug了两个小时WA了四次也很可以 用普通素数筛就能做, 优化一下用Eratosthenes筛法也行 先说用普通素数筛: 只需要先筛选出1-54内的素数( 最大的各位相加是999999这个数 最大54 ) 然后对1~1...
2018-07-25 14:48:00
104
转载 POJ 3090 - Visible Lattice Points ( 欧拉函数 )
题意求从(0,0)出发有多少个点与其连线(不在同一直线上)有多少条思路看左上部分和右下部分条数相同, 中间有一条k=1/2的连线 推出 n = 2 , ans = 2*2+1 = 5 n = 3 , ans = 2*4+1 = 9 n = 3 , ans = 2*6+1 = 13 n = 3 , ans = 2*10+...
2018-07-25 12:13:00
91
转载 HDU 1286 - 找新朋友 ( 筛法 )
题意找1~n-1内有多少个数与n没有大于1的公约数思路用筛法暴力就能解 分解出n的所有因子, 扫一遍未被标记的数目就是答案 在时间范围之内AC代码#include <iostream>#include <cstdio>#include <cstring>#include ...
2018-07-24 21:38:00
118
转载 UVa 10689 - Yet another Number Sequence ( 矩阵快速幂 )
题意 斐波那契数列, 给出a, b ( [0, 100] ), n( [0, 1000000000] ), m ( [1, 4] ) . 求 f(n) 的后m位思路因为要求的n非常大, 直接求解是肯定超时的. 这里涉及到利用矩阵快速幂求解递推式 : 由 f(n)=f(n−1)+f(n−2)f(n)=f(n−1)+f(n...
2018-07-24 21:31:00
76
转载 POJ 3660 - Cow Contest ( floyed求传递闭包 )
题意公牛比赛, 给出一些等级关系, 如 A B 表示 A 能够战胜 B 求有多少只公牛的排名能够确定思路一眼看成拓扑排序, 很久没做过拓扑忘了怎么写, 又因为个人赛不能查阅资料, 就没能继续想下去. 可是题目并没有要求具体的排序顺序. 在这道题中, 所谓战胜关系是可以传递下去的, 比如 A 战胜 B , B 战胜 C, 则...
2018-07-23 13:53:00
68
转载 UVa247 - Calling Circles ( floyed求传递闭包 )
题意电话圈, 每行输出在一个圈内的人名思路有向图的传递闭包 该有向图中, 并不需要关心路径长度, 只需要关心两点之间是否有通路, 则可以用”1”和”0”表示”连通”和”不连通”. 这样只需要将floyed算法中的语句改为 d[i][j] = d[i][j]||(d[i][k]&&d[k][j]) 即可求得传递闭...
2018-07-23 13:29:00
107
转载 UVa 1395 - Slim Span ( 枚举 + Kruskal最小生成树 )
题意求最苗条生成树(即最大边权值-最小边权值)最小的生成树, 若能构成最苗条生成树输出苗条度, 否则输出-1思路复健题目一个月没做题第一发就是AC 思路很简单的Kruskal算法求最小生成树 遍历枚举开始位置,当生成n-1条边时记录苗条度即可AC代码#include <iostream>#include...
2018-07-05 18:09:00
93
转载 POJ 3723 - Conscription ( 最大权森林 / 最小生成树 )
题意挑选N个女兵,M个男兵,雇佣每个人都需要支付10000元的费用,如果男a和女b存在亲密度d,只要他们其中有一个已经被选中,那么在选另一个人需要的费用为100000-d,给定R个关系,输出一个最低费用,每个关系只能使用一次。思路最大权森林转换为负权最小生成树( MST ) 当时学最小生成树就这个博客上的图感觉非常好理解:...
2018-05-15 11:47:00
122
转载 2018.5.5-5.6 第九届山东省省赛总结
2018.5.5-5.6山东省赛总结 从清明节选拔赛结束后开始准备的省赛终于也结束了。非常非常非常幸运的擦边拿了个银末,当然主要还是靠我的俩队友带飞,实在是太强了OAQ,跟他们组队我学会了不少新的名词,嗯…当然要尽早把这些知识点补上。 第一天热身赛的时候发现旁边是齐鲁工业的,对面是山理工的(本以为是巨佬但可惜是17的新队员),偷听一...
2018-05-07 21:58:00
82
转载 UVA 481 - What Goes Up ( LIS路径打印 )
题意给出一个数列, 求出一个严格上升的最长上升子序列并打印路径思路O(nlogn)打印 【LIS】O(nlogn)二分法搜索+路径输出 记住每一个元素曾经出现在最长子序列中的位置,然后我们反向查找,第一个遇到的就是真正LIS中的元素。AC代码#include <iostream>#inclu...
2018-05-03 22:32:00
140
转载 HDU 5247 - 找连续数 ( 思路 + RMQ )
题意一个长度为n ( n <= 10^4 )的无序数组, 找是否存在k区间使得区间内元素排序后是连续的, 求有多少个这样的k区间( k <= 1000 )思路RMQ算法预处理区间的思想实现O(n)查询 记录这个区间的最大最小值, 如果 最大值-最小值+1 == j-i+1 则 ans[j-i+1]++剪枝:...
2018-05-03 14:46:00
80
转载 HDU 4965 - Fast Matrix Calculation ( 矩阵快速幂 )
题意给出一个 n * k 的矩阵A, 一个 k * n 的矩阵B ( 4 <= n <= 1000 ) (2 <= k<= 6) 进行以下操作 : 1. 计算n * n的矩阵C = A * B 2. 计算矩阵 M = Cn∗nCn∗n 3. 矩阵M中每个元素模6得到M’ 4. 计算M’中每个元素的和...
2018-05-01 19:07:00
61
转载 CodeForces 445B - DZY Loves Chemistry ( 并查集 )
题意DZY做化学实验, 有n种试剂, 其中m对能够发生化学反应, 试管初始危险系数为1, 当放入一种试剂与试管中已有试剂能够发生反应, 则危险系数*2, 求最大的危险系数思路并查集 将所有能发生化学反应的试剂放在一个集合里, 一个集合中的试剂按照一定顺序加入就一定可以保证每次加入都发生反应。最大危险系数 = 2^(n-集合...
2018-04-27 22:21:00
118
转载 HDU 5835 - Danganronpa ( 贪心 )
题意给学生发礼物, 学生的桌子排成一行, 要求每个学生发两个礼物, 一种普通礼物, 一种特殊礼物(随意), 要求相邻的普通礼物不能相同思路每个学生准备两个礼物, 记礼物总数为sum, 则至多能分给sum/2个学生. 贪心 : 为保证相邻的普通礼物不同, 故尽可能多的放数量多的礼物, 中间插空放数量少的礼物, 当只剩一种礼物...
2018-04-27 22:15:00
115
转载 CodeForces 731C - Socks ( 并查集 + 贪心 )
题意Arseniy的所有袜子按照1-n编号, 每个袜子的颜色标记为c[i], 现在给出n个袜子和m天的穿袜子方案, 至多有k种颜色( 感觉是无用条件 ), 现在要求她每天穿着方案的两只袜子同色, Arseniy可以将其涂色改变颜色, 求最少的涂色数量思路比较容易想到并查集 将每天穿着方案中的两只袜子合并到同一个根节点下, 同一...
2018-04-27 12:28:00
132
转载 HDU 5783 - Divide the Sequence ( 贪心 + 思路 )
题意给出一个数列, 求最多可以分割成多少个子序列使得子序列的前缀和都>=0思路倒序扫一遍, 若为正则划分为一个序列, 若为负则将该数加到数列中前一个数里(加到和>=0为止).AC代码#include <iostream>#include <algorithm>#include ...
2018-04-26 20:48:00
115
转载 CodeForces 660D - Number of Parallelograms ( 模拟 )
题意给出n个点, 输入保证没有重复点, 且不会有三点共线, 求这些点能够构成的平行四边形的个数思路最后B题还有半个来小时没考虑全瞎瘠薄写没过 赛后补B题发现人家全用向量做的 我居然用的长度和斜率跑了2000+ms真的是太傻逼了大概就是用n*n跑一遍点, 枚举出所有可能组成的边(以向量形式存储), 若有两个向量完全相同...
2018-04-26 20:37:00
80
转载 POJ 1631 - Bridging signals ( LIS )
题意 有p条线路,它们有可能相交。现在让你去掉一些线路,使得剩下的线不相交且线最多 ( p < 40000 )思路为使得连线不相交, 必须选择一个上升的连接序列, 而求剩下的线不相交且最多就是求LIS ( 最长上升子序列 ) 由于p最大达40000, 1000 ms 肯定不能用复杂度为O(n*n)的朴素动态规划,会超时...
2018-04-25 21:39:00
89
转载 HDU 6112 - 今夕何夕 ( 基姆拉尔森公式 )
题意给出一个年月日, 求接下来最近哪一年的该月改日和这一天的星期相同思路基姆拉尔森公式求星期即可, 特别注意2月29日的特判 ! 关于基姆拉尔森公式 :基姆拉尔森公式模板int weekday(int y, int m, int d){ if(m==1||m==2){ m+=12;...
2018-04-24 18:50:00
155
转载 HDU 5860 - Death Sequence ( 递推+约瑟夫环 )
题意给出编号为1–n的n个人, 每隔k个杀一个人, 询问m次, 问第x个杀掉的是谁思路比赛的时候推递推式没推出来, 只好用vector的erase试试, 当然是超时了 比较像约瑟夫环, 但这个题目是不成环的 赛后还是查了查正解, 发现确实是有递推关系的 将编号改成从0开始。如果i%k==0, 那么i第一轮就被杀死。如果...
2018-04-24 15:43:00
101
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人