07 2015 档案
摘要:题意:大数乘法思路:FFT模板123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172...
阅读全文
摘要:题意:给定每个人所喜欢的食物和饮料种类以及每种食物和饮料的数量,一个人需要一种食物和一种饮料(数量为1即可),问最多满足多少人的需要思路:由于食物和饮料对于人来说需要同时满足,它们是“与”的关系,所以建模时需要放在不同的层,另外如果把人放在根,食物和饮料依次放后面,则每个人会扩展出f*d个节点出来,...
阅读全文
摘要:题意:给一个n*m的矩形,往每个格子填0-k的数字,使得对第i行和为row[i],第i列和为col[i],问是否存在方案,方案是否唯一,如果方案唯一则输出具体方案。思路:首先根据问题提取对象,行、列、格子、数,只有数可以连接其它的对象。从源点向第i行连一条容量为row[i]的有向边,从第i行向第i行...
阅读全文
摘要:题意:有m台机器,n个任务,每个任务需要在第si~ei天之间,且需要pi天才能完成,每台机器每天只能做一个任务,不同机器每天不能做相同任务,判断所有任务是否可以做完。思路: 把影响答案的对象提取出来,得到以下几个:机器,任务,时间;需要用一个量把这三者联系起来,不难想到用工作量来表示。从源点向每个任...
阅读全文
摘要:题目:给两个字符串a、b,问从a中删去若干字符后最多可以得到多少个b串的重复串(bb...b的形式,b的长度不超过100),其中a串是由一个长度不超过100的字符串s重复k次得到的思路: 暴力匹配a和b,由于s,b的长度都不超过100,标记每次匹配后a串指针的位置对len(s)的模,那么最多有100...
阅读全文
摘要:题意:求最小的线段树的右端点(根节点表示区间[0,n]),使得给定的区间[L,R]是线段树的某个节点。数据范围:L,RL,否则它的右儿子就为空了,这是不允许的。接下来看无解的条件,如果L//#include//#include//#include//#include//#include//#incl...
阅读全文
摘要:题意:给一个矩形,矩形里面画了4种符号,'.'表示没画线,'R'表示画了红线,'B'表示画了蓝线,'G'表示红线和蓝线同时画了,并且矩形主对角线上只能画红线,副对角线上只能画蓝线,问最少画多少条线才能形成给定的矩形的涂色情况。思路:实际上给定的矩形唯一对应一种画线图案,'.'对应的格子没任何线,'R...
阅读全文
摘要:题意:给一个array,有两种操作,(1)修改某一个位置的值,(2)询问区间[L,R]内的最大子段和,其中子段需满足相邻两个数的位置的奇偶性不同思路:假设对于询问操作没有奇偶性的限制,那么记录区间的最大子段和就可以通过合并区间得到答案了。加上奇偶性的限制后,记录的信息必须更加具体,需要把子段的端点的...
阅读全文
摘要:题意:给一个长度为m的序列,从里面选出一些数,相对位置不发生变化,并满足a[i]=a[n-i],a[1]a[l]=a[r]&&l//#include//#include//#include//#include//#include//#include//#include//#include//#inc...
阅读全文
摘要:题意:给定二分图,求添加的最多边数,使得添加之后还是二分图思路:如果原图可以分成X,Y两个点集,那么边数最多为|X||Y|条。由于|X|+|Y|==n,所以需要使|X|与|Y|尽量接近。先对原图进行染色,对每个连通块,求出它的两种颜色的点数差,并且交换染的颜色,染色方案依然成立。不妨设染色0和1,c...
阅读全文
摘要:题意:给定一个序列,a[n]=3n(n-1)+1,n>=1,求给定的m(m=3,则必有m=a[i1]+a[i2]+...+a[ik],由于a[i]=3i(i-1)+1=6[i(i-1)/2]+1,所以有:m=6[i1(i1-1)/2+i2(i2-1)/2+...+ik(ik-1)/2]+k ...
阅读全文
摘要:题意:给一个n*m的区域,里面有一些障碍物,往里面放2*3和3*2的矩形,矩形之间不能重叠,不能覆盖到障碍物,求能放置的最大个数。(n#include#include#include#include#include#include#include#include#includeusingnamesp...
阅读全文
摘要:相当于模板题了,用trie来完成字符串到数字的映射比map要快不少,令外可以考虑hash。运行时间对比:(1)(2)600ms左右 (3)3000ms左右(4)1500ms左右(1)O(n^2)的dijkstra:1234567891011121314151617181920212223242526...
阅读全文
摘要:裸最大流,求最大流一般步骤如下:(1)所有正向边权初始化为容量,反向边权初始化为0(2)找增广路(3)找到则进入(4),否则得到最大流并退出(4) 增广路上所有边减去最小边权,相应的方向边加上最小边权,然后返回(2)123456789101112131415161718192021222324252...
阅读全文

浙公网安备 33010602011771号