- 博客(68)
- 资源 (2)
- 收藏
- 关注

原创 2014年省赛总结
本来不打算写总结的, 1是因为自己这场比赛状态不好没脸写点东西, 2是因为我对于这个省赛老实说不是很看重, 觉得也就比校赛档次高了点而已。However, 刚刚看完了囧王队长的退役贴, 感触蛮多的吧,决定写点吧, 顺便完成教练的要求。 本来这次省赛, 我一开始幻想的是和肉鸽师傅组队的。恩, 肉鸽作为去年暑假带我的学长,之前一直没有和他组队过, 再加上他早已经决定退役去考研了的, 所以很想
2014-04-14 14:46:00
971

原创 【转】ACM 训练大纲
发篇blog激励下自己吧。Changsha University of Science & TechnologyJuly 31, 20121 推荐题库• http://ace.delos.com/usaco/美国的OI 题库,如果是刚入门的新手,可以尝试先把它刷通,能够学到几乎全部的基础
2014-03-05 21:05:01
1210
原创 SPOJ Sorted bit squence
http://www.spoj.com/problems/SORTBIT/题意 : 问你[l, r]在这段区间里面的数字二进制下数位上1的个数排序(按从小到大, 相同的话数值小的在前)后,第k个是谁。 -2^31 + 1 思路 :二分 + 数位DP。 具体思路可以看下刘聪的《浅谈数位类统计问题》(第二题)。用深搜实现代码会显得简洁、CODE :#include #includ
2014-03-09 02:01:23
1141
原创 命运使然吧、
那么讽刺, 是吧、前段时间看了《地心引力》, 还记得里面有一句经典的台词 :It's getting hot in here. Okay.All right. Okay. All right, the way I see it, there's only two possib
2014-03-08 00:45:32
1115
原创 Codeforces Round #234 (Div. 2)
题目 : http://codeforces.com/contest/400A Inna and Choose Options把12个字符拆成大小为1*12, 2*6, 3*4, 4*3, 6*2, 12*1的矩阵, 问你哪些矩阵存在一列都是X,输出。 暴力。 B Inna and New Matrix of Candies给一个1000*1000的矩阵, 每一步选择全部的
2014-03-07 12:14:03
978
原创 POJ 3233 Matrix Power Series (矩阵 + 二分)
Matrix67 博客上介绍的一道经典题目。http://poj.org/problem?id=3233题意 : 求S = A + A^2 + A^3 + … + A^k 其中A是一个给定的n * n的矩阵, 对于m取模。n 思路 : 两次二分 : 第一次二分计算calc(x) = A ^ x,第二次是S(1...x) = S(1...mid) + S(mid + 1...x) =
2014-03-06 17:15:11
863
原创 ZOJ 3497 Mistwald
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3497题意 : 给你一个5 * 5的矩阵, 存在一些单向边(存在自环), 然后问你从 (1, 1) -> (n, m)走k步到达 这一情况是否存在。思路PS : 比赛的时候没想出, 后来发现这其实就类似这一题 (这题以前是肉鸽师傅教我的, 当时只当是矩阵快速幂在做
2014-03-06 15:57:27
971
原创 next_permutation的使用
http://www.cplusplus.com/reference/algorithm/next_permutation/?kw=next_permutation在暴力的时候用这个函数可以使得代码看起来简洁很多。例如 : LightOJ 1023 - Discovering PermutationsCODE :#include #include #include us
2014-02-28 18:41:27
903
原创 【树链剖分学习小记】
//废话 : 在几个月前学习学习线段树的时候碰到了LightOJ 1348, 各种蛋疼, 后来学长和我说了这题是用树链剖分做的, 简单了解了之后就放弃了 - - 。寒假在家无聊翻出来学学, 略有所得。资料 : http://wenku.baidu.com/view/a088de01eff9aef8941e06c3.html http://blog.sina.com.cn/s/b
2014-01-30 21:41:39
1275
原创 BZOJ 2243 染色(树链剖分+线段树区间合并)
链接 : http://www.lydsy.com/JudgeOnline/problem.php?id=2243中文题。思路 : 很裸的树链剖分, 而查询颜色段数量可以用线段树来维护, 唯一麻烦的是在查询的时候要注意每一段的有向性, 即 a----b + c----d 的时候要注意不能更新成a----b + d----c这里写的时候需要斟酌下(其实考虑到top[u]在线段
2014-01-29 21:51:04
1101
原创 POJ1986 Distance Queries (tarjan算法LCA 模板题)
题目 : http://poj.org/problem?id=1986求最近公共祖先的tarjan 算法。离线算法、时间复杂度为O(n)基本框架 :先用随便一种数据结构(链表就行),把关于某个点的所有询问标在节点上,保证遍历到一个点,能得到所有有关这个节点LCA 查询建立并查集.注意:这个并查集只可以把叶子节点并到根节点,即getf(x)得到的总是x的祖先
2014-01-25 12:02:02
862
原创 POJ 1845 Sumdiv (快速幂)
题目链接 : http://poj.org/problem?id=1845题意 : 求∑(x^n的所有因子) mod 9901;思路 : 如果 x = p1^a1 * p2^a2 * p3^a3...pn^an, (p1, p2, ...都是x的质因子), 那么所求解S = (1 + p1 + p1^2 ...+p1^(a1*n)) * (1 + p2 +....).....所以其实只
2014-01-19 20:30:11
891
转载 《我曾经七次鄙视自己的灵魂》- 纪伯伦
第一次,当它本可进取时,却故作谦卑; 第二次,当它在空虚时,用爱欲来填充; 第三次,在困难和容易之间,它选择了容易; 第四次,它犯了错,却借由别人也会犯错来宽慰自己; 第五次,它自由软弱,却把它认为是生命的坚韧; 第六次,当它鄙夷一张丑恶的嘴脸时,却不知那正是自己面具中的一副; 第七次,它侧身于生活的污泥中,虽不甘心,却又畏首畏尾。
2014-01-18 18:29:16
1544
原创 POJ 1971 Parallelogram Counting
题目链接 : http://poj.org/problem?id=1971题意 : 给你n(n 思路 : 一开始我是枚举每一条有向边, 因为两条边相等且方向一样的话就可以够成一个平行四边形,数出所有的之后减去一些三点一线的, 然后除2(一个四边形有两对平行边)就可以获得正确答案了。O(n ^ 2 * log (n ^ 2))的复杂度, 但是可能常数有点大(我实现需要两次排序, 并且还要二
2013-12-12 22:10:59
808
原创 HDU 4737 F(x) (数位DP)
题目链接 : http://acm.hdu.edu.cn/showproblem.php?pid=4734题意 : 给两个数A,B然后定义:F(x) = An * 2n-1 + An-1 * 2n-2 + ... + A2 * 2 + A1 * 1, An,An-1...是X各个位上的数字。求从[0, B]有多少个数x满足F[x] PS :这是今年成都网络赛的一道题目, 比赛的时候我虽然知
2013-12-12 21:07:14
796
原创 2013年区域赛总结 && 最近一个月
简单得把这一个月的事情回顾下。这一个月我参加了一场区域赛,一场财经的邀请赛,若干场CF,对于比赛的成绩来说喜忧参半。首先回顾下长沙的区域赛。上个月差不多这个时候我和杰哥 (JayYe)乐乐(角落里的阳光Lee) 一起组成的Justsoso参加了长沙的比赛。在此之前我没有参加过任何一场现场赛,这算是我的处子战吧,最后出了四道题目拿了个铜奖。我们是周五傍晚出发的,坐了12个小时的火车赶
2013-12-12 18:05:54
917
原创 HDU 4389 X mod f(x) (数位DP)
http://acm.hdu.edu.cn/showproblem.php?pid=4389题意 :问[l, r]之间满足这个数是其各个位置上的数之和的整数倍这一条件有多少个。思路 : 数位DP, 因为一个数各个位置上的数之和是 #include #include #include using namespace std;const int maxn = 90;
2013-12-10 23:41:46
733
原创 HDU 4507 吉哥系列故事——恨7不成妻 (比较繁琐的数位DP)
题目链接 :http://acm.hdu.edu.cn/showproblem.php?pid=4507题意 :找出[l, r]之间所有不满足以下任意一条的数的平方之和 : 1、整数中某一位是7; 2、整数的每一位加起来的和是7的整数倍; 3、这个整数是7的整数倍;思路 : 数位DP, 繁琐的是处理平方和,可以这样考虑当你算到len位的时候获得的数字是x,
2013-12-08 14:32:24
869
原创 LightOJ 1096 nth Term (构造矩阵)
题意 : f(n) = a * f(n-1) + b * f(n-3) + c, if(n > 2) = 0, if(n ≤ 2)(n 思路 : 一开始是寻找循环节去做的, wa了几发后觉得有问题,因为它形成循环的条件需要的是连续出现一段f[x], f[x+1], f[x+2]都和前面某一段相同, 因而出现循环的可能不大。正解应该是
2013-12-01 21:24:53
1770
原创 LightOJ 1095 Arrange the Numbers (容斥原理)
题意 : 1到n的排列中前m个中恰好有k个数每个数都和他的下标相同。问这样有几个 ? 答案取模。思路 : 前m个(1~m)选择k个是组合数C(m, k)种, 然后令x = m - k, y = n - m; 则 x中会有[0, x]个位置是下标和值一样, 这里可以利用容斥原理做,即减去i为奇数的加上i 为偶数的。ans = C(m, k) * ∑ (C(x, i) * (x + y - i
2013-12-01 15:40:34
1944
原创 LightOJ 1140 How Many Zeroes?(数位DP)
题意 : 统计[a, b]之间所有数的含0个数只和思路 : 数位DP,用了GYZ的写法,注意下一个数的前缀0不算进去就OK了的, 简单题。#include #include typedef long long lld;lld dp[15][11][15][2], n, m;int bit[15];lld dfs(int len, int x, int sum, i
2013-11-28 22:37:20
1283
原创 lightoj 1281 - New Traffic System (有限制最短路)
题意 : 给你一张有向图, 然后在给你k条新的路和一个d,问你在建立不超过d条新路条件下节点0 到节点n - 1 的最短路。思路 : 这道题目可以转换成有限制的最短路来做的,只要把新边认为w = 1,而旧边就是w = 0,最后w总和不超过 d后就是裸裸的有限制最短路,至于有限制的最短路可以用A* 优化做的,评估函数 是f(x) = g(x) + h(x) 其中g(x)表示的是当前搜索到的满足条
2013-11-26 21:55:19
1210
原创 POJ 2449Remmarguts' Date (A* 求K短路)
题目链接题意 : 求一张有向图S->T的K短路。思路 : 经典题目。 K短路最简单并且最暴力的方法是从起始点S爆搜下去, 把到达的x的距离d[x]不停的加入到一个优先队列中去, 最后然后每次取出最短距离节点u,然后cnt[u]++一直到到达了u = T && cnt[u] = k结束搜索。 这个方法复杂度似乎是O(M*K),对于这道题目是超时或者爆内存的 = = 。网上看了下比较好也比
2013-11-24 20:53:51
1139
原创 lightoj 1099 - Not the Best (次短路)
题意 : 求一张图里面的次短路,可以重复走一个节点,并且长度绝对大于最短路。思路 : 用Dijkstra算法求出每个点到起始点和终止点的最短距离, 然后枚举每一条边(ds[a[i]] + de[b[i]] + w[i])和(ds[a[i]] + de[b[i]] + w[i] * 3),选择一条大于最短路的次短路。#include #include #include #inc
2013-11-22 17:41:47
1058
原创 lightoj1038 - Race to 1 Again(概率DP)
题意 : 一开始给你一个数D然后随机从它的因子中找出一个x,进行D = D / x操作, 这样算一步,直到D=1结束,问你P(D)的期望是几步。思路 : 建边之后就是典型的概率DP题,状态转移方程式 : P(D) = (∑(P(D的非1和本身因子)+1) + 2) / (因子数+1) ; #include #include const int maxn = 100005;const
2013-11-19 16:26:38
982
原创 lightoj 1027 - A Dangerous Maze(不错的概率题)
题意 : 在n个门前选择一扇门出去, 然后如果第i扇门的 Xi值是正的话,你会花费Xi时间后出去 , 如果Xi是负数的话你会花费-Xi时间后回到老地方,并且忘记了刚才的选择, 选择一扇门的概率是等概的。求出去的期望。思路 :定义一次选择选择到Xi是整数的概率为P1,选择到负数的概率是P2,然后选择了正数后平均在T1时间后出去, 选择了负数后平均在T2时间后回到原地。接着设出去的期望是Y,那么可
2013-11-19 15:16:32
3159
原创 HDOJ 2364 Escape (bfs)
题意 : 求从一个点走到迷宫的一边上最短的步数,每次如果可以转弯走就必须转弯走(即不能直走),无法转弯则考虑向前走。思路 : 求最短步数, 所以广搜, 因为每一个点都会有可能从4个方向进来的可能, 所以开一个三维记忆数组vis[x][y][k]标记这种可能是否已经走过。#include #include #include using namespace std;con
2013-11-10 23:02:39
660
原创 LightOJ 1085 - All Possible Increasing Subsequences(DP + 线段树 + 离散)
题意 : 求一个数列的所有严格递增子序列的数量。思路 : 定义一个状态:dp[i]表示第i个位置的数a[i]为这个序列的结尾的所有递增子序列数量,dp[i] = ∑dp[k] (a[i] > a[k] && i > k),这样可以用一个线段树来维护寻找[min, a[i] - 1]所有的dp[k]的总和,而因为输入的|a[]| #include #include #incl
2013-11-03 12:03:16
1345
转载 ZZ送给参加ACM同学的忠告 (很喜欢最后一段文字)
发信人: Toney (时间,我需要时间), 信区: ACM_ICPC 标 题: 送给参加ACM同学的忠告 发信站: 北邮真情流露 (Fri Mar 17 16:19:47 2006), 站内 送给参加ACM同学的忠告 最近一两年内,北邮的ACM已经发展了很多了,确实有不少同学为此做了很大贡献,比如建立起了JudgeOnline,写解题报告等等,相当赞。也有相当一部分同
2013-11-02 00:21:11
1645
原创 POJ 3348 Cows(凸包)
ans = 凸包面积Area / 50 取整,我用的是刘汝佳的模板。#include #include #include #include using namespace std;const double eps = 1e-10;const int maxn = 10005;struct Point{ double x, y; Point(double x = 0
2013-10-31 19:08:35
711
原创 HDOJ 3308 LCIS (线段树区间合并)
题目链接题意 : 求最长连续递增序列,10^5次操作。思路 : 线段树区间合并实现。因为只是求连续的,所以只要记录每个区间左边起和右边结束还有最大的3个LCIS值,然后合并相应区间就行。#include #include #include using namespace std;const int maxn = 100005;int max(int a,int
2013-10-27 22:13:15
950
原创 UVA 11992 Fast Matrix Operations (线段树区间更新)
刘汝佳白书上的题目。题意 : 给你一个矩阵(m * n,最多20行,总元素不超过10^6个),然后Q次操作。有3种操作 :1,在(x1,y1)~(x2,y2)这个子矩阵上每一个元素都加上 v。2,在(x1,y1)~(x2,y2)把这个子矩阵上的每一个元素都变为v。3,询问(x1,y1)~(x2,y2)这个子矩阵的总和,最小值,最大值。思路 : 因为最多20行,所以开20个线段树
2013-10-27 22:05:07
985
4
原创 POJ 2886 Who Gets the Most Candies?(线段树 + 约瑟夫环 + 反素数)
线段树 + 约瑟夫环 + 反素数题目连接题意 : N个人顺时针围成一圈,每个人有一张卡片,轮到某个人的时候进行以下操作 :1 , 这个人退出这个圈。2,如果这个人的卡片上的数字是正数X则向右数X个位置,otherwise向左数(-X)个位置。3被数到的那个人执行相同操作,直至没有人为止。4,如果原来的那个人是第K个,那么他将会获得P(K)颗糖。 注 : P(k)表示k的不同约数数量(可
2013-10-26 20:45:08
757
原创 356A - Knight Tournament
前几天做 div 2的时候卡在这题上了,线段树不会实在是伤啊,学了几天线段树后,今晚就敲了发。思路 : 类似于区间涂颜色(只要倒着涂即可),每一个节点的保存的信息是 : 如果这个节点所代表的的区间都是同一种颜色则fg[rt] != 0,否则fg[rt]为0。#include #include #include using namespace std;const int
2013-10-22 23:40:10
1034
原创 【博弈学习】
『有些东西学习只是喜欢而已,有些东西学习是因为需要,但是不管是那种如果在学了,就好好学』最近刚刚接触博弈题,题目慢慢积累中...HDOJ-1564Play a game思路 :先手赢的必胜状态是和n的奇偶有关,n是奇数先手输,n是偶数先手赢。HDOJ-1846Brave Game思路:经典巴什博弈 先手输的状态是n % (m+1) == 0
2013-10-19 00:11:33
1067
原创 UVa Ray, Pass me the dishes! (线段树)
白书上的线段树例题。题意 : 给你一个数组,然后有m次询问,每次询问一个区间,返回在这个区间里面最大的连续和的起始和结束位置、思路 :每个节点记录前缀max_pre和和后缀和max_suf来维护它的最大连续和max_sub。(其实思路白书上讲了,就是代码实现而已)需要注意的是这道题目的max_pre,max_suf,max_sub都是需要用long long 来保存的。#i
2013-10-18 23:41:49
926
原创 POJ 2777 Count Color (线段树区间更新)
题意 : 给你一L个点,一开始都涂成颜色1,然后有O次操作,C a b c 的话就是讲[a,b]涂成颜色c,若P a b,询问[a,b]区间不同颜色的数量。思路 : 线段树,区间更新。(一开始没学过区间更新的,只会单点更新,结果更新复杂度为O(n),默默的TLE了几把)开一个lazy数组,对应节点进行lazy操作,使得每次更新的时候不许要继续小区间更新下去了,而颜色覆盖的话使用位运算(因为颜色
2013-10-18 23:32:59
782
原创 UVA 11178 Morley's Theorem(计算几何入门)
就是求一个三角形的6条角三分线构成的一个正三角形的坐标。算出角度,直接直线相交求交点。简单题,主要是为了验证我的模板的正确性。#include #include #include #include using namespace std;const double eps = 1e-10;struct Point{ double x,y;
2013-10-09 18:53:49
703
原创 计算几何简单入门题列表
先刷白书,刷到一定程度后就来刷这些。http://hi.baidu.com/novosbirsk/item/16330d2b7be6910e42634a13
2013-10-08 11:43:08
1093
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人