04 2013 档案

摘要:最大流建图是关键,将一个题目转化为最大流,要有清晰的建图思想。这道题注意构建源点和汇点,然后直接套模板。#include#include#includeusing namespace std;const int maxn = 220;const int inf = 10000000;//不要开太大i... 阅读全文
posted @ 2013-04-30 20:38 amourjun 阅读(184) 评论(0) 推荐(0)
摘要:EK是最朴素的最大流算法了,但效率比较慢,当然代码也比较清晰,思路去看LRJ的白书就行了。但是由于网上大牛总结SAP基本上是解决最大流的最标准模板了,网上大牛说基本没有什么最大流能卡SAP。EK代码:#include#include#includeusing namespace std;const ... 阅读全文
posted @ 2013-04-30 20:36 amourjun 阅读(172) 评论(0) 推荐(0)
摘要:这题。。。。。。。做了半天,倒是让我更加了解了强连通分量,是我的第二道强连通。石建让我做一下这道题,我用模板再变形,改了很久之后,能给出的样例都过了。discussion上的样例都过了,倒是上面N多人说数据没过AC了。。。。。你让我们这数据过了没AC的生活如何自理。。。先放着,哪天有思路再来搞。。/... 阅读全文
posted @ 2013-04-28 19:14 amourjun 阅读(126) 评论(0) 推荐(0)
摘要:怎么说呢,做完这题发现自己的代码好挫好挫啊。。。判断无向图欧拉回路,只需要判断连通与无奇点就行,待会转一个欧拉回路的总结。代码:#include#include#includeusing namespace std;const int N = 1010;int degree[N];int arr[N... 阅读全文
posted @ 2013-04-28 09:59 amourjun 阅读(118) 评论(0) 推荐(0)
摘要:好吧,博弈是博大精深的,现在只是稍微了解一下基础,以后总有一天来搞搞~~!!~!~网上的讲解:(三)尼姆博奕(Nimm Game):有三堆各若干个物品,两个人轮流从某一堆取任意多的物品,规定每次至少取一个,多者不限,最后取光者得胜。 这种情况最有意思,它与二进制有密切关系,我们用(a,b,c)表示... 阅读全文
posted @ 2013-04-26 11:25 amourjun 阅读(198) 评论(0) 推荐(0)
摘要:这题由于数据水1a掉了,我的代码只对大的一堆进行操作也能ac,事实上应该将对小的操作情况也考虑进去,但是题目没有给出输出顺序。思路:先用黄金分割乘以差值与小堆进行判段,若相等,为奇异局势,直接输出零。否者用二分搜索对某一堆的操作。代码:#include#includeusing namespace ... 阅读全文
posted @ 2013-04-26 10:20 amourjun 阅读(121) 评论(0) 推荐(0)
摘要:简单的wythoff game 只需了解其奇异局势的公式:ak=k*(sqrt(5)+1)/2 bk=ak+k;#include#includeconst double tmp=((sqrt(5.0)+1)/2);using namespace std;int main(){ int a,b... 阅读全文
posted @ 2013-04-24 21:56 amourjun 阅读(132) 评论(0) 推荐(0)
摘要:接触一下博弈,这是最经典的博弈了。思路,小于等于m的就不说了,当只有m+1个物品时,则第一个人会输。这样就可以找到制胜的最佳方案了,当n=(m+1)*r+s时,只要第一个人先取s个,则接下来只要保证留下(m+1)倍数个的物品给下一个人便能赢的比赛。代码:#includeusing namespace... 阅读全文
posted @ 2013-04-24 18:31 amourjun 阅读(108) 评论(0) 推荐(0)
摘要:先前接触了单调队列的题,确实是很重要的知识点,单调队列不难,就是用栈或队列来通过对队头的判断来实现队列保持单调。题意:给出一个大小为n的数组a[n];求其中最大值减最小值在【m,k】中的字串最长长度。思路:用两个单调队列分别维护a【i】前元素中的最大值与最小值的下标,top为最值。然后当最值之差过大... 阅读全文
posted @ 2013-04-23 21:07 amourjun 阅读(141) 评论(0) 推荐(0)
摘要:首先是A题,这题知道用二分做之后自己做了一遍,开始建图没用好思路,然后就想到了建图的方法,主要是二分匹配要注意的点是:2个集合。确定两个集合之间的关系,而不要在一个集合上自身匹配。然后就无限WA了,样例和自己列的数据都过了,死磕都WA 后来问肖太爷,他建图方法比我简单多了,我是一个一个枚举搜索来区分... 阅读全文
posted @ 2013-04-23 19:05 amourjun 阅读(195) 评论(0) 推荐(0)
摘要:好吧。。。。自己太挫了,队内一共几个人 我就排第8.。。。一开始,看A题,一开始好像急着去找水题了,结果没仔细看,前两天刚学的二分图居然没看出来,然后没做这题了。。。。然后卡B题,这题主要是没注意到数据的规模 以后要注意100w的数据只能用O(n)的算法,所以这题是用单调队列做的。。。。B题没过,然... 阅读全文
posted @ 2013-04-20 22:45 amourjun 阅读(104) 评论(0) 推荐(0)
摘要:同样的又是复习,一道拓扑排序水题代码:#include#includeusing namespace std;#define N 550int map[N][N];int indegree[N];int ans[N];void toposort(int n){ int i,j,k; k=... 阅读全文
posted @ 2013-04-20 18:26 amourjun 阅读(132) 评论(0) 推荐(0)
摘要:我靠,怎么过不了,不行 明天继续debug 明明过样例了 我的天。。。。次奥,打错了一个代码半天没找出来!!!哭啊。。这里记一下,kruskal是无环图。先贴挫代码:#include#include#include#include#define maxn 10005using namespace s... 阅读全文
posted @ 2013-04-19 21:29 amourjun 阅读(115) 评论(0) 推荐(0)
摘要:我去,博客来大姨妈了,明明保存了的复习一下并查集,之前做的是与其他方法一起运用的。这样更加清晰。周末总结一下,明天还有队内比赛的说。纯纯的模板代码:#includeusing namespace std;int p[1011];int find(int x){ if(x!=p[x]) ... 阅读全文
posted @ 2013-04-19 21:27 amourjun 阅读(149) 评论(0) 推荐(0)
摘要:整晚都耗在KM上了。。。。果然不完全理解代码模板用起来太吃力了,其中若使用取负值的时候在正常KM模板上会在中途出错,之前也没给出标准的KM模板当然这题的字典树可以不要,而且我用的也很粗糙有很多东西还能优化,但是加深了对字典树的使用,所以说知道结构之后会非常灵活方便呀~~~最后今天编辑一下,总结下KM... 阅读全文
posted @ 2013-04-18 22:30 amourjun 阅读(129) 评论(0) 推荐(0)
摘要:题意比较奇葩,就是n条鱼,相互之间在map==1时能交配生出他们val的异或值的后代,求最大后代的值。直接套用模板。。。。这里发现之前的模板有错,所以我用这个模板重新去敲前面那题,找一下前面的错误。。。找模板真不是好习惯。。。代码:#include #include #include #define... 阅读全文
posted @ 2013-04-18 16:36 amourjun 阅读(110) 评论(0) 推荐(0)
摘要:其实与今天做的强连通那倒模板题一样,代码不能完全理解,到学会了如何判断是否能用km模板来做,而且也学会了套用km模板来ac了,但是原理却还是不太清楚,果然还是要继续慢慢想明白才行啊,先贴出模板吧,明天再做一下km,继续理解下去。代码:#include#include#include#includeu... 阅读全文
posted @ 2013-04-16 22:13 amourjun 阅读(100) 评论(0) 推荐(0)
摘要:题意当强连通分量为1的时候输出Yes否者输出No。学习了一下强连通分量的步骤,给出算法详解http://www.byvoid.com/zht/blog/scc-tarjan(注:不能用IE浏览)该题也可以用双向dfs求强连通分量,这里给出Tarjan算法的模板,更适合变形。也贴上双向dfs的代码吧。... 阅读全文
posted @ 2013-04-16 15:11 amourjun 阅读(153) 评论(0) 推荐(0)
摘要:数论,降幂,感觉数论这种只能多接触了,自己推简直要把脑子烧冒烟啊。。。高中毕业以后根本不想弄数学了。。。数论计算几何弱菜伤不起。。。。貌似这题用hash也能过呢。代码:#include#includeusing namespace std;int main(){ int a,b,c,T; ... 阅读全文
posted @ 2013-04-15 21:50 amourjun 阅读(135) 评论(0) 推荐(0)
摘要:去你妹的第K大。。。。害我WA几次。。让不让我等二货活了。。无解啊。。。代码:#include#include#include#includeusing namespace std;#define N 2001int a[3005];bool hash[N];int num[N];int main(... 阅读全文
posted @ 2013-04-15 21:25 amourjun 阅读(129) 评论(0) 推荐(0)
摘要:罪过罪过。。。。刷了个水题。。练英语吧。。题意:用第一行密码代替26个字母解密第二行句子。代码:#include#include#includeusing namespace std;char cha[26];char str[80];int main(){ while(cin>>cha) ... 阅读全文
posted @ 2013-04-15 20:58 amourjun 阅读(115) 评论(0) 推荐(0)
摘要:哈哈哈,每次犯二都会无限的鄙视自己>.#include#includeusing namespace std;#define N 5000int a[3005];bool hash[10005];int num[10005];int main(){ int n,m; while(scan... 阅读全文
posted @ 2013-04-15 20:40 amourjun 阅读(129) 评论(0) 推荐(0)
摘要:各种找各类水题做啊。。。不多说了,最简单哈希。然后发现了一个外挂哈哈。。。。代码:#include#include#include#includeusing namespace std;#define N 1000001bool hash[N];inline bool scan_d(int &num... 阅读全文
posted @ 2013-04-15 19:26 amourjun 阅读(240) 评论(0) 推荐(0)
摘要:好吧,一晚上无限次的暴露自己是弱菜的级别。。。。本来开开心心的套用二分匹配模板,结果因为没有弄清谁匹配谁弄混匹配次数而不能1A。怨念啊。。。。注意注意注意,下次二分一定要注意!代码:#include#includeusing namespace std;#define MAXN 333int map... 阅读全文
posted @ 2013-04-12 22:45 amourjun 阅读(130) 评论(0) 推荐(0)
摘要:和1150基本一样,也是最小覆盖点=最大匹配个数唉,再次感叹弱菜。。。。。题意我都没懂。。。我的天。。直接看样例做的。。。。代码:#include#includeusing namespace std;int map[200][200];int tmp[200];int flag[200];int ... 阅读全文
posted @ 2013-04-12 22:16 amourjun 阅读(125) 评论(0) 推荐(0)
摘要:弱菜需要更加多的学习!!英文题还是给出题意吧,英文太头疼了。。。题意:A机器n种工作模式,B机器m种工作模式,共有k个任务。(i,x,y)代表:任务i可由A机器x模式或者B机器y模式完成。任务顺序可以随便改动,如果A或者B机器需要更换模式,则需要重启机器。求完成工作,需要最少启动机器次数。解题思路:... 阅读全文
posted @ 2013-04-12 21:25 amourjun 阅读(182) 评论(0) 推荐(0)
摘要:第一道二分匹配,这题自己的理解就是在两组人中,先枚举一组人,找到与其匹配的人,若该人未被匹配->标记匹配,否者递归找(与该人匹配的同一组人是否还有其他可匹配的关系)。不知道是不是这样,先做一些简单题吧!这题不知道男生人数的输入有什么作用- -。而且开始的时候犯了个非常二的错误,把男生与女生输入顺序输... 阅读全文
posted @ 2013-04-12 20:27 amourjun 阅读(143) 评论(0) 推荐(0)
摘要:刚学完划分树,然后就直接用模板改了这道题,用模板固然很快啦,还是要自己写一遍的,否则到时候要改细节的地方就麻烦了。要多熟悉一下呢!代码:#include#include#include#includeusing namespace std;const int MAXN=100010;int tree... 阅读全文
posted @ 2013-04-09 20:48 amourjun 阅读(128) 评论(0) 推荐(0)
摘要:划分树:主要用于快速求出(在log(n)的时间复杂度内)序列区间的第k大值。哎呀,这里直接套用模板了。总感觉自己有点太急了,不管了。不用管别人怎么看了,自己做好就行啦啦啦啦啦,太做作的东西太不习惯了。poj 2104,2761 基本一样同样的给出图,方便理解其方法:代码:#include#inclu... 阅读全文
posted @ 2013-04-09 20:00 amourjun 阅读(104) 评论(0) 推荐(0)
摘要:题意:给出N个数,然后M个操作,操作又Q和U2种,Q A B 代表 询问A-B之间的最大值,U A B 代表把A的值更新为B分析:简单的线段树,属于模板题线段树,一种二叉搜索树,每个节点代表一段区间。在该结构上的操作在log级别。结构什么的还是自己看代码吧,有个整体概念后,根据题来看懂代码这种能力还... 阅读全文
posted @ 2013-04-08 21:06 amourjun 阅读(138) 评论(0) 推荐(0)
摘要:今天又接触了一个树:字典树。给出结构图。其优点:节约储存空间,提高查询效率。其主要函数用法Insert();插入结点,用到了指针,总感觉指针用在表示前后缀这种关系上是最清晰的了。先把这份模拟别人写的代码写下当作模板!以后有时间再继续做几道字典树的题。代码:#include#include#inclu... 阅读全文
posted @ 2013-04-08 20:05 amourjun 阅读(135) 评论(0) 推荐(0)
摘要:第一次接触树状数 很神奇的一个结构,适用于快速修改数组和数组前n项求和!复杂度log(n);题意:给出n个星星坐标 按y为第一关键字x为第二关键字的顺序给出,星星左下角所包含的星星的个数为该星星的等级,输出0~n-1等级星星的个数;这里给出图示方便了解树状数组结构:主要掌握和理解几个函数的作用low... 阅读全文
posted @ 2013-04-05 16:44 amourjun 阅读(142) 评论(0) 推荐(0)
摘要:二分思想 了解二分与三分的适用情况二分代码:#include#include#includeusing namespace std;const double b=1e-6;double f(double x){ return 42*pow(x,6)+48*pow(x,5)+21*pow(x,2... 阅读全文
posted @ 2013-04-05 13:34 amourjun 阅读(174) 评论(0) 推荐(0)
摘要:poj 1276Cash MachineTime Limit:1000MSMemory Limit:10000KTotal Submissions:18242Accepted:6364DescriptionA Bank plans to install a machine for cash with... 阅读全文
posted @ 2013-04-01 21:03 amourjun 阅读(191) 评论(0) 推荐(0)
摘要:#include#include#include#includeusing namespace std;const int maxn=500;const int maxdp=10010;int p[maxn],w[maxn];int dp[maxdp];int main(){//freopen("i... 阅读全文
posted @ 2013-04-01 21:02 amourjun 阅读(84) 评论(0) 推荐(0)
摘要:题目链接:http://poj.org/problem?id=3624题意:小偷光顾珠宝店,背了个包的容积为M,珠宝店有N种珠宝,每种珠宝的体积为W,价值为D,小偷用这个背包可以偷回去珠宝的最大价值是多少。代码:[cpp]view plaincopyprint?#includeint main(){... 阅读全文
posted @ 2013-04-01 21:02 amourjun 阅读(143) 评论(0) 推荐(0)
摘要:#includeusing namespace std;#define MAXN 20000int map[105][105];int f[105][105];int x[]={0,0,1,-1};int y[]={1,-1,0,0};void dfs(int i,int j){for(int k=... 阅读全文
posted @ 2013-04-01 21:00 amourjun 阅读(149) 评论(0) 推荐(0)
摘要://这题是一简单的一个递归 算锻炼水体熟练度吧~~~Prime CryptarithmThe following cryptarithm is a multiplication problem that can be solved by substituting digits from a spec... 阅读全文
posted @ 2013-04-01 20:59 amourjun 阅读(151) 评论(0) 推荐(0)
摘要:经典的 最大回文子串Calf FlacIt is said that if you give an infinite number of cows an infinite number of heavy-duty laptops (with very large keys), that they w... 阅读全文
posted @ 2013-04-01 20:58 amourjun 阅读(113) 评论(0) 推荐(0)
摘要://很水的一题,用一次结构体排序就过了..Mixing MilkSince milk packaging is such a low margin business, it is important to keep the price of the raw product (milk) as low... 阅读全文
posted @ 2013-04-01 20:58 amourjun 阅读(108) 评论(0) 推荐(0)
摘要:这题和上题基本一样,但是看翻译时被坑了...Dual PalindromesMario Cruz (Colombia) & Hugo Rickeboer (Argentina)A number that reads the same from right to left as when read f... 阅读全文
posted @ 2013-04-01 20:57 amourjun 阅读(104) 评论(0) 推荐(0)
摘要:简单的1-300递归搜索主要的2处代码/* 函数circle用于判断正整数n的d进制数表示形式是否是回文数 */int circle(int n, int d){int s=0,m=n;while(m){s=s*d+m%d;m/=d;}return s==n;}//函数printd将正整数n由10进... 阅读全文
posted @ 2013-04-01 20:57 amourjun 阅读(98) 评论(0) 推荐(0)
摘要://很水的一题,用一次结构体排序就过了..Mixing MilkSince milk packaging is such a low margin business, it is important to keep the price of the raw product (milk) as low... 阅读全文
posted @ 2013-04-01 20:56 amourjun 阅读(174) 评论(0) 推荐(0)
摘要://类型,贪心 此题思路:用一个数组储存牛棚有牛的编号,再用一个数组储存每个相邻的牛之间的距离.然后每次的最短距离便是减去最长的相邻牛之间的距离./*ID: jun41821PROG: barn1LANG: C++*/#include #include #include using namespac... 阅读全文
posted @ 2013-04-01 20:56 amourjun 阅读(119) 评论(0) 推荐(0)
摘要:考点:水题?思路:计算从1900 1月1日开始计算天数,7天一周循环来记录13号星期几提交情况:1A收获:.....经验:读题读题读题...最后输出理所当然的想着是从星期一开始输出,结果想了2个小时....还有对循环范围的控制*************************************... 阅读全文
posted @ 2013-04-01 20:54 amourjun 阅读(150) 评论(0) 推荐(0)
摘要:Greedy Gift GiversA group of NP (2 ≤ NP ≤ 10) uniquely named friends has decided to exchange gifts of money. Each of these friends might or might not ... 阅读全文
posted @ 2013-04-01 20:54 amourjun 阅读(253) 评论(0) 推荐(0)
摘要:思路:看了看像是动态规划中的最大子串,以前做过一个类似的,网上说是用模拟的水题,自己想用动态规划做一做,就试了一试....时间:用了3天...每天YY几个小时....提交情况:不谈了...心得:打代码的时候都把注释给加上,思路比较清晰,只是后来发现思路漏洞逐渐显露出来,太多情况没有注意,导致后面的程... 阅读全文
posted @ 2013-04-01 20:52 amourjun 阅读(180) 评论(0) 推荐(0)
摘要:Complete Search 枚举搜索译 by Lucky Crazy思想:写枚举搜索时应遵循KISS原则(Keep it simple stupid,译为“写最单纯愚蠢的程序”,意思是应把程序写得尽量简洁),竞赛时写程序的最终目标就是在限制时间内求出解,而不需太在意否还有更快的算法。枚举搜索具有... 阅读全文
posted @ 2013-04-01 20:50 amourjun 阅读(271) 评论(0) 推荐(0)
摘要:类型:模拟.发现自己做模拟老是漏这漏那的,导致数据总是过不了!!!!!不给出中文了,一个求数列并集最长子串的模拟.很水 但是我很坑...思路:对挤奶时间结构体排序,然后递归求最大值;收获:学会用结构体的排序,qsort的使用;错误情况,模拟时的方法漏洞!!!!!!!!!!!!!!!!!!!!!!!!... 阅读全文
posted @ 2013-04-01 20:49 amourjun 阅读(341) 评论(0) 推荐(0)
摘要:一题简单的模拟,第一次做这种旋转矩阵的,开始觉得有点难,其实后来仔细想想,慢慢的来也是挺简单的,提交两次通过,第一次错误是因为没有严格按照题目要求的顺序给出答案.TransformationsA square pattern of size N x N (1 #include #include #i... 阅读全文
posted @ 2013-04-01 20:48 amourjun 阅读(249) 评论(0) 推荐(0)
摘要:Name That NumberAmong the large Wisconsin cattle ranchers, it is customary to brand cows with serial numbers to please the Accounting Department. The ... 阅读全文
posted @ 2013-04-01 20:47 amourjun 阅读(242) 评论(0) 推荐(0)
摘要:简单的1-300递归搜索主要的2处代码/* 函数circle用于判断正整数n的d进制数表示形式是否是回文数 */int circle(int n, int d){ int s=0,m=n; while(m) { s=s*d+m%d; m/=d; } return s==n;}//函数printd将正... 阅读全文
posted @ 2013-04-01 20:45 amourjun 阅读(101) 评论(0) 推荐(0)