思维
文章平均质量分 53
lych4o
这个作者很懒,什么都没留下…
展开
-
2017多校1 1003 HDU 6035 树形dp
(本文转载,原帖http://blog.csdn.net/Bahuia/article/details/76141574)题意:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6035 一棵n个结点的树,每个结点都有颜色,定义两点之间的路径长度为路径上出现的不同颜色数目,求树上所有路径的长度和。思转载 2017-10-28 13:51:17 · 197 阅读 · 0 评论 -
Gym 101630G The Great Wall
题意:三个有n个正整数的数组满足a[i]<b[i]<c[i],固定一个r,根据不同的x,y生成不同的数列,每对合法的x,y(x<y)生成两个区间[x,x+r-1],[y,y+r-1],合法指生成的区间不会越界,如果一个点i被两个区间覆盖,他的值就是c[i],如果被一个覆盖就是b[i],否则a[i],一个数列的价值等于所有点的值之和,问在所有x,y生成的序列中价值第k大的是多少...原创 2018-09-04 22:43:26 · 554 阅读 · 0 评论 -
Codeforces Round #493 (Div. 1) B - Roman Digits
题意:1,5,10,50四种硬币不限量,问用刚好n个硬币可以凑出多少种不同的数,n<=1e9分析:本题的一大难点在于同一个数可能被不同的硬币所表示,可以通过如下方法化简:由于硬币数量固定,我们可以把所有硬币的价值-1,使得价值变为{0,4,9,49}考虑如果我们选了(49+x)个4或者9,可以将其换成x个4或9,将49的倍数部分用0和49进行填充所以我们可以枚举4和9各选i,...原创 2018-08-21 14:01:24 · 150 阅读 · 0 评论 -
Codeforces Round #492 (Div. 1) [Thanks, uDebug!] E - Number Clicker
题意:给出u,v,p三个正整数,有三种操作u=(u+1)%p,u=(u+p-1)%p,u=pow(u,p-2)%p,找到一种方法使得200步之内通过这三种操作令u变为v,保证有解分析:相当于一个每个p个节点每个节点最多3条边的图让你找两点之间长度不大于200的路径实际上逆元这条边相当随机,好像是有人研究过这类问题的,贴一下CF官方题解的说法:We present two sol...原创 2018-08-23 21:19:47 · 410 阅读 · 0 评论 -
Codeforces Round #492 (Div. 1) [Thanks, uDebug!] D - Game
题意:给出一个长度为n的二进制数x和一个长度为(1<<n)的数组C,一开始x的每一位都为-1,有两位玩家A和B,每轮随机选出一名玩家将x中的一个-1改为0或1(由玩家决定),在x确定之后游戏的结果为C[x],玩家A想让C[x]大,玩家B想让C[x]尽量小,求C[x]的期望,此外,还会有r次更改,每次修改C数组的某个值,对于每次修改也求出C[x]的期望分析:对于二进制位的每一...原创 2018-08-23 20:02:41 · 208 阅读 · 0 评论 -
Codeforces Round #492 (Div. 1) C - Leaving the Bar
题意:给出n个向量,令一些向量反向使得所有向量的和的长度不超过1.5e6,其中每个向量长度不超过1e6,n <= 1e5分析:任选三个向量,他们本身和他们的反向中总能选出两个相互夹角大于120°的向量,这样就可以让向量长度减少,每次选出三个做即可,实现时用一个集合表示某些向量的和,并用带权并查集维护是否反向#include<bits/stdc++.h>#def...原创 2018-08-23 19:36:00 · 165 阅读 · 0 评论 -
URAL 1003 并查集
有一个01串,给出K次询问,每次回答区间[l,r]中1的个数是奇数还是偶数,找出第一次产生矛盾的地方,如果没有输出K题解:把端点看成0~x的前缀和sum[x], 就可以得到向量关系sum[r]-sum[l-1]= odd/even, 转化为带权并查集处理#include #include #include #include #include #include #include原创 2018-01-29 14:25:01 · 174 阅读 · 0 评论 -
2013ICPC长春 HDU 4814 Golden Radio Base 乱搞
题意:给十进制数转换为黄金分割进制,要求每位为0或1,且不能出现相邻的1题解:令x为黄金分割比,1 = x^(-1) + x^(-2), n = n*(x^(-1) + x^(-2)), 题目提示了两种操作 x^1 + 1 = x^2, 2*x^2 = x^3 + 1, 最多100位数所以每次扫一遍乱搞一下就可以了,操作一可以减少总的数字的数量所以优先做1操作可以减少次数原创 2017-10-25 13:12:05 · 176 阅读 · 0 评论 -
Codeforces Round #403 (Div. 2) E. Underground Lab
题意:给n点m边的连通图,k个人从任意点出发至多经过 个点,求分配方式使得每个点都至少被走过一次题解:在图中以任意点为根任意dfs出一个生成树,每条边走2次(也就是每次向前走完再回头走),按dfs的顺序得出一个答案序列,总共走过2*(n-1)+1 = 2*n-1个点并且走完所有点,再把连续的 个点分配给一个人,多的人输出1 1即可#include #include原创 2017-12-06 23:42:59 · 337 阅读 · 0 评论 -
HDU 6134 Battlestation Operational 2017多校8 莫比乌斯反演
#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include //#include //#include using namespace std;#def原创 2017-11-20 11:01:53 · 207 阅读 · 0 评论 -
Manthan, Codefest 18 (rated, Div. 1 + Div. 2) F - Maximum Reduction
题意:function z(array a, integer k): if length(a) < k: return 0 else: b = empty array ans = 0 for i = 0 .. (length(a) - k): temp = a[i] ...原创 2018-09-03 10:19:37 · 190 阅读 · 0 评论