11 2012 档案
摘要:搜索较麻烦的搜索题目训练poj1069,poj3322,poj1475,poj1924,poj2049,poj3426广搜的状态优化poj1768,poj1184,poj1872,poj1324,poj2046,poj1482深搜的优化poj3131,poj2870,poj2286较麻烦的搜索题目训练poj 3322感觉这题应该归类到模拟题。。。bfs&&priority_queue直接模拟就行。昨晚写了一个版本,因为状态记录的太多了,MLE一次。发现总共有三种形状,每种形状可以用一个坐标加一个标号表示。比如约定立着的用(x, y, 0)表示,横着的为(x, y), (x, y
阅读全文
摘要:一些概念和理解:Suffix(i): 表示从i位置到字符串末尾这个子串,(后缀数组);sa[i]:表示排名为i的子串从哪个位置开始,即排名为i的子串为Suffix(sa[i]);rank[i]:表示在字符串上,第i位置在后缀数组中的排名是多少;height[i]:height[i] = Suffix(sa[i-1]) 和Suffix(sa[i])的最大公共前缀;假设有j、k,且rank[j] < rank[k],则有:Suffix(j)和Suffix(k)的最大公共前缀为height[rank[j] + 1], height[rank[j] + 2], ... , height[ran.
阅读全文
摘要:被虐残了T_T。开始没思路,膜拜大牛的思路又看不懂。。。推荐一个题解:http://hi.baidu.com/fpkelejggfbfimd/item/5c76cfcba28fba26e90f2ea6 思路是求单个串的k前缀,不如有串sx, sy。sx的k前缀是a,sy的k前缀是b,sx + sy的k前缀是c。那结果就是:c - a - b; 关于怎么求单个串的k前缀: 大概的思想是求出后缀数组的height值,然后按k进行分组。对每一组里,假设有x个连续的height值为d的情况,那么这段连续的子区间贡献出的结构就是C(x, 2)*(d - k + 1);因为数据是10^5,所有要...
阅读全文
摘要:之前写过一篇,越看写的越不爽,删之重写。 11.07出发,大概是11.09上午10点多抵达青城山,然后跟随志愿者办理各种手续,入住,休息。 第二天早晨起来看了会模板,然后从住处出发去学校。下午热身没什么好说的,貌似是给大家增加自信的,所有3道题都很水,好像是全场AK?我也不太清楚,没注意看board;其间有些小风波:打印机不能用,全场座位全乱。。。晚上看了会电视睡下; 第二天正式赛,一个难忘的光棍节比赛啊。。。话说看到好几个队是一对情侣加一个灯泡来的,>,< 无语。比赛开始前10分钟才让进场,孩纸们都在外面冻着啊有木有!T_T 比赛开始我上去敲配置,宏定义啥的(貌似只有我自己用宏。
阅读全文
摘要:/*记得以前做cf就吃过这上面的亏,今天队里的比赛又挂了好几次才推 出来。。。晚上整理了一下,分别写了写>= , > , <= , <这四种情况。(== 就 不用写了),测试数据包含最小值和最大值的测试,有些情况结果是非法的,输出为-1 或 n*/ //#pragma comment(linker,
阅读全文
摘要:模板题:Keywords SearchView Code //#pragma comment(linker,"/STACK:327680000,327680000")#include <iostream>#include <cstdio>#include <cmath>#include <vector>#include <cstring>#include <algorithm>#include <string>#include <set>#include <function
阅读全文
摘要:HNOI的题。。。蛋疼的没有想到,看了discuss。。。 已知N+1个数,x1, x2, .. xn, m;使得gcd(x1, x2, ..., xn) = 1(mod m)。也就是说gcd(x1, x2,..., xn, m) = 1需要找x1, x2, ... ,xn这样的序列多少个。其实就是找到与m互素的数构造这个集合就可以。。。首先对m进行分解质因子,可以用容斥原理找到与m不互素的数构成的集合,用m^n减掉就可以了;ps:貌似这题不用高精度。//#pragma comment(linker,"/STACK:327680000,327680000")#include
阅读全文
摘要:题目是给出m,k。找到跟第k个跟m互素的数是多少。 构造肯定不行,再加上数据范围,只能二分。思路是二分枚举[1,2^64]范围内所有的数x,找到1到x范围内与m不互素的数的个数y(用容斥原理)。然后用x - y,如果等于k就是结果。找到1到x范围内与m不互素的数的个数y:这个过程可以先把m分解质因子,记录m所有的质因子。f[i]表示含有i个质因子的数的个数。ans = m - f(1) + f(2) - f(3) ....ps:这里二分要找满足 == k最左边的数,推了半天发现把二分写错了。。。T_T//#pragma comment(linker,"/STACK:327680000
阅读全文
摘要:感觉这个题很不错,至少开始真的没想道可以用抽屉原理推出一个结论,然后把这题秒掉。。。。已知有n个元素,sum[i]表示从1到i所有数的和。。。sum[i]%n可以得到一个剩余系,如果出现0,那么结果就找到了。如果不出现0,就可以用抽屉原理了。因为剩余系里只有[1,n-1]这些数,但是sum[i]%n会得到n个结果。n-1个抽屉放n个物品,必定有一个抽屉放的物品数大于等于2。也就是必定存在sum[j]%n == sum[i]%n。我们假设sum[i] > sum[j],所以有(sum[i] - sum[j])%n = 0; 从而得到结果。构造大概有O(n)的复杂度吧,开始想写O(n^2)。
阅读全文
摘要:http://www.cppblog.com/vici/archive/2011/09/05/155103.html容斥原理(翻译)前言:这篇文章发表于http://e-maxx.ru/algo/inclusion_exclusion_principle,原文是俄语的。由于文章确实很实用,而且鉴于国内俄文资料翻译的匮乏,我下决心将其翻译之。由于俄语对我来说如同乱码,而用Google直接翻译中文的话又变得面目全非,所以只能先用Google翻译成英语,再反复读,慢慢理解英语的意思,实在是弄得我头昏脑胀。因此在理解文章意思然后翻译成中文的时候,中文都不知道如何表述了。而又由于我对容斥原理知识的匮乏,
阅读全文
摘要:wikipedia上的解释和证明:http://en.wikipedia.org/wiki/Tonelli%E2%80%93Shanks_algorithmTheTonelli–Shanksalgorithm(referred to by Shanks as the RESSOL algorithm) is used withinmodular arithmeticto solve a congruence of the formwherenis aquadratic residue(modp), andpis an oddprime.Tonelli–Shanks cannot be used
阅读全文