随笔分类 - POJ
摘要:A(UVA12336) 题意:给一个n*m(n,m<=1e5)的棋盘,棋盘上有一些障碍点不能放棋子,现在要在棋盘上放4个棋子,满足A->B->C->D->A,其中走的规则是跳马字,问一共有多少种方案 分析:数学计算+hash 因为A、B、C、D可以顺时针、逆时针、随便以谁为起点放,所以对于一个确定的
阅读全文
摘要:poj2965 poj1753:标准的BFS+位运算优化 poj1328:线段覆盖变种,把圆对应到线段上,贪心求解 poj2109:高精度开根,二分+高精度,注意要判断答案的位数,如果按照题目给的范围二分会TLE poj2586:给十二个月定盈亏(每个月+s或-d),连续5个月总的需要时亏,求12个
阅读全文
摘要:题目:http://poj.org/problem?id=2484题意:n个石子围成一个圈,两个人轮流取,每次可以取一个石子或者相邻的两个石子,问先手胜还是后手胜分析:典型的对称博弈如果n>=3,那么无论先手如何选择,后手完全可以选择一种方法使得后来剩下的是两条一样长的链,那么无论先手如何操作,后手...
阅读全文
摘要:题目:http://poj.org/problem?id=3537题意:给你n个格子,两个人依次在n个格子的任意空位置画"X",谁如果画了一个后,3个X连在了一起,那么那个人就获胜了。问是先手胜还是后手胜分析:胜利的上一个状态肯定是_XX_或者_X_X_,又因为每个人都是聪明的,也就是说如果一个人在...
阅读全文
摘要:题目:http://poj.org/problem?id=2404题意:有个n(n<=15)的点和m条无向边,每条边都有自己的权值。现在你要从某个点出发,每条边可以经过多次但要保证每条边至少走一次。现在你要找出一个方案,使得经过所有边的权值和最小,输出最小的权值和。分析:首先容易想到的是如果这个图G...
阅读全文
摘要:题目:http://poj.org/problem?id=1284题意:就是求一个奇素数有多少个原根分析:使得方程a^x=1(mod m)成立的最小正整数x是φ(m),则称a是m的一个原根然后有这样的定理: 1、所有奇素数都有原根 2、如果一个数n有原根,那么原根个数为φ(φ(n))由性质2就可...
阅读全文
摘要:题目:http://poj.org/problem?id=3696题意:给你一个数字L,你要求出一个数N,使得N是L的倍数,且N的每位数都必须是8,输出N的位数(如果不存在输出0)分析:首先我们假设N是x个8组成的那么88888...888=kL提个8出来:8*111..1111=kL ①因为题目只...
阅读全文
摘要:题目:http://poj.org/problem?id=3274题目大意:http://www.wikioi.com/problem/1247/(此题中文版)分析:令sum[i][j]表示a[1][j]+a[2][j]+……+a[i][j]那么要求的就是找到最大的j-i使得sum[j][1]-su...
阅读全文
摘要:题目:http://www.wikioi.com/problem/1307/题意:给你一个树,上面有n个节点,每个节点都有一个价值p,求一个n个节点的排列顺序,是的Σi*p[i]最小(要求父节点一定要在子节点的前面)分析:首先如果没有父节点和子节点,那么这题就是一道弱弱的排序题,根据排序不等式,策略...
阅读全文
摘要:题目;http://poj.org/problem?id=3182题意:一个棋盘中间有一个联通块,给你一个起点让你从起点开始绕联通块外围一圈并回到起点,求最小步数。分析:首先根据数据的范围比较小,所以觉得应该是搜索,而且是BFS。朴素的想法是从起点开始BFS 8个方向扩展,不过这样肯定要跪。注意到这...
阅读全文
摘要:题目:http://poj.org/problem?id=3045题意:每个牛都有一个wi和si,试将他们排序,每头牛的风险值等于前面所有牛的wj(j③,④>①,而又假设原顺序是最优的,那么后来交换后肯定不是最优的,即②<④,即wi+si<wi+1+si+1,即最优序列一定满足wi+si<wi+1+...
阅读全文
摘要:题目:http://poj.org/problem?id=3044题意:以坐标的形式给出一张图,表示一些楼房的正视图,求出楼房的最少个数。分析:和小学常做的立方体问题很像,很容易想到一个贪心方法,那就是尽量把矮的楼房放在高的楼房的前面,即连续的等高的一些"X"我们把它视为一座楼房。 具体的做法...
阅读全文
摘要:题目:http://poj.org/problem?id=2228题意:将一天分为N小时,每小时都有一个价值w,有一头牛要睡觉,而它的睡觉是连续的,且第一小时不能算价值,即如果你睡了[a,b],则你获得的收益是w[a+1]+w[a+2]+……+w[b],而这头牛可以每天多次睡(可以理解成选若干个时间...
阅读全文
摘要:题目:http://poj.org/problem?id=2226题意:给你一个字符矩阵,每个位置只能有"*"或者“.",连续的横着或者竖的“*"可以用一块木板覆盖,"."不能被覆盖,求最少用多少块木板才能把整张图里的"*"全覆盖住分析:很巧妙的建图将所有横着的连续的"*"看作二分图左边的点集,同理...
阅读全文
摘要:题目:http://poj.org/problem?id=2454题意:给你3*k(k<=60)个数,你要将它们分成3个长度为k的序列,使得其中至少有两个序列的和大于k*500分析:以为有高大上的做法,然后题解爸爸告诉我是随机化乱搞……首先可以把最小的k个去掉然后将剩下的2*k个分成2组接下来随机化...
阅读全文
摘要:题目:http://poj.org/problem?id=3171题意:给你n个区间[a,b],每个区间都有一个费用c,要你用最小的费用覆盖区间[M,E]分析:经典的区间覆盖问题,百度可以搜到这个专题。线段覆盖问题一般考虑贪心和DP,但是每个区间又有了一个费用c,本渣觉得贪心貌似不太行(不知道神犇门...
阅读全文
摘要:题目:http://poj.org/problem?id=3169题意:给你一组不等式了,求满足的最小解分析:裸裸的差分约束。总结一下差分约束:1、“求最大值”:写成"=",求最长路
阅读全文
摘要:题意:S<=x1+x2+...+xT<=B0<=x1<=N10<=x2<=N2...0<=xT<=NT求这个不等式方程组的解的个数。分析:即求(1+x1+x1^2+x1^3+...x1^N1)(1+x1+x1^2+x1^3+...x1^N2)...的展开式中指数为s~B的系数之和,那么多项式乘法撸撸就行了
阅读全文
摘要:题意:多重背包的w=v特殊情况分析:此题如果用单调队列O(nv)会被无耻卡常数……然后鉴于此题W=V,所以只存在背包恰好为i的是否存在,即bool型的f[i]是否为1即往背包染色上面考虑如果是完全背包,那么有f[j]=f[j]|f[j-v[i]]那么此题是不是不可以做呢?并不是,我们可以记录下每个状态所用的物品的个数,限制一下即可,不影响结果(因为这实际上不能算是dp,因为没有最优的抉择的选举,只是刷一遍)教主果然吊……Orz StQ
阅读全文
摘要:题目大意:给你一个序列a[1....n],让你求一个序列b[1....n],满足 bi =a && bc,则最小的调整可以是把b变成c.所以归纳可知上面结论成立。dp[i][j] 表示考虑前i个元素,最后元素为序列中 第j小元素的最优解,a[]数组存原始数组,b[]是对a从小到大排序。dp[i][j] = MIN(dp[i-1][k]) + abs(a[i]-b[j]), (0<k<=j)虽然第一眼会看见是空间n^2 时间n^3的,但是可以发现min(d[i-1][k])可以边做边保存,于是状态转移的时间变成了O(1),且空间也可以滚动,所以最后是空间n,时间n^2
阅读全文