自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 收藏
  • 关注

原创 Linux源代码阅读辅助工具

在阅读Linux的代码时,总是会遇到ssize_t, key_t这类经过define或typedef定义的类型,又想知道他最本质的类型是什么int?long?在网上没找到相关的东西,就自己随便写了个简单的辅助工具,访问所有用到的头文件、c文件,找出其中的define, typedef, 顺便还有function,全放到一个文件里,方便查找。渣渣随便写写,不喜勿喷 >_<

2016-07-25 00:42:08 885

原创 2016"百度之星“-初赛(Astar Round2B)-A.区间的价值

每次取出集合中最大的数,放到它对应的位置,如1,6,2,4,4,取出6,放到1位置(从0开始)。当你取出一个数a时,两边会有一些之前放的数,,其中a是最小的,假设在中最大,中最大。那么这一段连续的数可以更新长度为]的答案,而且是要包含a的一段。一段区间的有效部分是最小值到最大值的一段,我们可以先考虑有效部分,然后用它向上更新。因为a是最小值,最大值要么在b,要么在c,有效区间不会横跨b,c

2016-05-25 12:52:46 425

原创 Codeforces Round #332 (Div. 2) E. Sandy and Nuts

http://codeforces.com/contest/599/problem/E题意不再多说...我用 dp[i][type][s] 表示以i为根,包含二进制s所表示的节点(不含i)的子树的方案数,type的作用放到后面解释。那么答案就是 dp[0][0][(1状态转移的时候我先分离出当前sta最低位的1(lowbit), 然后我枚举和这一位组成一颗子树的情况(这样使得枚举不

2015-11-22 00:35:28 178

原创 UVA 11987 Almost Union-Find

就是比普通的并查集多了个删除操作,显然叶子节点容易删,问题在于可能删根节点。既然叶子节点容易,我们就把所有的点都变成叶子。我是多开了n个虚拟节点。(因为我的集合合并是直接连两个根,所以那些有效节点的父亲肯定一直是虚拟节点,所以删除的时候只要考虑一个点就行....其实我是后来才发现,这算是水过吗 QAQ)

2015-08-16 19:00:38 78

原创 Codeforces 189 C. Kalila and Dimna in the Logging Industry

http://codeforces.com/contest/319/problem/C代码太挫,不忍细看...想着想着,开始胡思乱想...想着先按顺序砍,例如 1 2 3 4 5如果发生变化,就会有数字跳到前面来,比如 1 3 2 4 5这时发现 2 已无卵用,反正不需要b[2]了,干脆放最后好了然后再变化的时候,若跳到3前面,3就是白跳了问题就转化成 从序列中选取若干

2015-08-14 23:25:13 1002

原创 HDU 5382 GCD?LCM!

推...导

2015-08-14 16:58:56 83

原创 Codeforces 570 D. Tree Requests

http://codeforces.com/contest/570/problem/D仔细想来,还真没做过一道dfs序的题....先将查询按深度排序,对于要操作的深度,将树上的这一层都放到树状数组上。查询的时候,就查询这颗子树内各个字母出现的个数。#include using namespace std;typedef long long ll;#def

2015-08-14 13:37:08 906

原创 HDU 5381 The sum of gcd

对于每个i,求出若干区间[l1,r1],[l2,r2],[l3,r3]...满足gcd(l1~i)~gcd(r1~i)一样,gcd(l2~i)~gcd(r2,i)一样...则以i为右区间的所有gcd和为sum[i] = (r1 - l1 + 1) * g1 + (r2 - l2 + 1) * g2 + ...同理求出i右边的一段段同gcd区间[l11,r11],[l22,r22],[l33

2015-08-13 20:01:58 846

原创 Codeforces 538 E. Demiurges Play Again

http://codeforces.com/contest/538/problem/E瞎搞。。。

2015-08-07 17:02:16 639

原创 Codeforces 567 E. President and Roads

http://codeforces.com/contest/567/problem/E就是先判断每条边是不是最短路的桥,如果是,输出YES,否则,看看能否通过修改长度,变成桥。

2015-08-07 14:19:17 569

原创 Codeforces 540 E. Infinite Inversions

离散化 + 树状数组。先处理出所有会变动的位置,然后求出这些位置上最终的数值。接着分两步,先求出这些元素之间的逆序数,再求每个元素和其余不变动元素间的逆序数

2015-08-07 13:46:07 598

原创 UVA 11139 Counting Quadrilaterals

噢~~智商如此捉鸡!刚开始连样例都跑不出来(我居然就去交了一遍 (╯‵□′)╯︵┻━┻)都已经放弃去看题解了。。(搜不到T^T,天亡我也)只能继续想,发现对于凹四边形,相同的点可以构成3个不同的四边形(卧槽,意外之喜啊~)然并卵。。。只能想出一个超高复杂度的算法。。。。求大牛随手拯救一把 Orz我是先按照点不同,求出不同的四变形个数A,然后求出凹四边形的个数Bans

2015-08-05 17:30:13 917 1

原创 HDU 5348 MZL's endless loop

题意就不再说了。。。思路是:对于一个无向图,度数为奇数的点一定有偶数个,所以,我先将每两个奇度顶点连一条边。这样构成的新图,一定能找到一条欧拉回路,那么每个点的出度等于入度。又因为每个点最多只加了一条边,去掉这条边,|出度 - 入度| 在求欧拉回路的时候TLE到心碎,幸好队友最终想到了优化。。。姿势太差T^T#pragma comment(linker, "/STACK:1

2015-08-05 09:18:31 604

原创 UVALive 2911 Maximum

首先把答案凑出来,若b 然后对于剩余的个数,每a+1个可以凑成 sqrt(a) + n * (-1 / sqrt(a))。对最后剩下的k个,k-1个 -1 / sqrt(a) 和 1 个 (k - 1) / sqrt(a)然而我并不知道如何证明。。。

2015-08-03 11:16:11 426

原创 Codeforces 547 D. Mike and Fish

http://codeforces.com/contest/547/problem/D还是太弱了,怎么都想不出来,最后看了标签贴着 graphs,感觉有了点方向,想到了网络流。。。最近做好多题都需要标签指路。源点S和横坐标连线,S->x , cnt 是横坐标为x的点数,则这条边的下界是 cnt / 2,上界是 (cnt + 1) / 2 ,纵坐标与汇点T相连。对于点(x,y) , 连一条x

2015-08-02 14:53:03 478

原创 Codeforces 542 D. Superhero's Job

http://codeforces.com/problemset/problem/542/Dx = p1^k1 * p2^k2 * p3^k3 * .....  (p1,p2,p3...是素因子)那么 k 一定是某几个素因子的乘积,且每个素因子的个数都与x相等。J(x) = 1 + p1^k1 + p2^k2 +...+ p1^k1 * p2^k2 + .... (共 2 ^ q 项)

2015-08-02 12:32:01 63

原创 Codeforces 549 H. Degenerate Matrix

http://codeforces.com/problemset/problem/549/H唉,智商是硬伤T^T二分答案x,[a-x,a+x] * [d-x,d+x] 和 [b-x,b+x] * [c-x,c+x] 有没有交点。

2015-08-02 12:21:46 153

原创 Codeforces 553 C. Love Triangles

http://codeforces.com/problemset/problem/553/C对于一个连通块,两个人之间边的值是确定的,如果出现了冲突,答案就是0.对于不同的连通块,只要加一条边,就能确定两个连通块间的连边情况,所以答案就是2^(连通块个数)

2015-08-02 12:07:56 566

原创 Codeforces 553 B. Kyoya and Permutation

http://codeforces.com/problemset/problem/553/B比赛的时候看错了题目,现在重新做的时候才发现。。转化后不发生变化的串才是符合条件的。。所以,要么自己形成循环,要么两个点形成循环。dp[i] = dp[i+1] + dp[i + 2]. (dp[i] 表示第i位开始,有多少符合条件的串。

2015-08-02 12:02:28 105

原创 Codeforces 557 D. Vitaly and Cycle

对二分图没什么深入的了解,原来可以这么用。。。涨见识了1.若原来就存在奇环,需要加0条边,方法数是12.若没有边,需要加3条边,方法数是C(n,3)3.若每个点最多只有一条边,需要加2条边,方法数是m * (n - 2)4.只要加1条边,就能组成奇环。由于没有奇环,这是个二分图,在同一边任选两点加边,一定能形成一个奇环。

2015-08-02 11:44:30 92

原创 Codeforces 551 D. GukiZ and Binary Operations

http://codeforces.com/problemset/problem/551/D可以一位一位的考虑,对于某一位,若k的值为0,那么a不能有相邻的1,你会发现情况数就是fibonacci,若k为1,就是总的情况数 - k = 0的情况数。最后,各位乘起来就行。对了,fibonacci需要用到矩阵快速幂!

2015-08-02 11:29:34 420

原创 Codeforces 558 D. Guess Your Way Out! II

http://codeforces.com/problemset/problem/558/D我先把q个区间都下移到叶子层,映射一下,若[l,r] 为 1,则[l,r] 的 g[]值 + 1,否则其补集所在的区间 +1,对于区间所有数 +1,可以先 g[l] + 1, g[r+1] - 1,最后在求一下和。然后看看g[] = q的点有几个。

2015-08-02 11:14:07 427

原创 POJ 2888 Magic Bracelet 有限制的Polya计数

求每个置换的不变的着色数,对于每个置换,有gcd(n,k)个环显然,任取一段长度为gcd(n,k),则gcd(n,k)个点分别属于各个环且相邻关系是(a1,a2),(a2,a3)...(ai,a1)那么,问题转换成了,对于每个置换i= gcd(n,k),求a1,a2..ai的着色数,相邻点都符合条件,即有些颜色不能相邻设m种颜色为 m个点,形成m*m的矩阵C,若i后

2015-07-16 10:44:09 587

原创 ZOJ 3824 Fiber-optic Network ~莫比乌斯

若先确定父结点的取值为A  设f(i)为子结点取值和A的gcd为i,且子结点为根的子树相邻结点都互质的方案数  设F(i)为子结点取值和A的gcd为i的倍数,且子结点为根的子树相邻结点都互质的方案数  则f(1) = sigma(mu[d] * F(d)) 条件 d是A的因子想到,确定一个父结点,一个子结点,就能确定一棵子树,于是我将每条边分解成两条有向边。数组F[e][j]记录的

2015-07-14 10:37:43 1083

原创 UVALive 6678 Judging Troubles

题意是:给你一组数组,求出存在多少个区间,满足区间内的数的xor值和and值是相等的。我的想法是:先枚举区间左端点(假设为第 L 行),由于and的特性,从L开始,可以将[L,n)划分成32段,从L到第1段的某行的and值是全1,到第2段的某行的and值是有1个0,以此类推。那么就可以一段一段处理,而对于某一段,and值已经确定了,[a行,b行]的xor值 = [1,a] ^[1,b],可以预

2015-07-13 18:31:50 711

原创 UVALive 6396 Factors 反素数!!

刚开始看到,想到是反素数,还有点小鸡冻。。。然而结局是悲伤的T^T,没想到第一篇博客居然是未AC的。。。

2015-07-13 17:43:24 501

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除