03 2015 档案

poj2762 Going from u to v or from v to u? (tarjan求有向图强联通分量/缩点)
摘要:本来准备回去了,想想看了一晚上,还是过一个模板题吧==这题比赛时候其实就有思路了,就是将强连通分量缩点成一个DAG,然后判断是否成一条链,会个tarjan就是裸题啊==不说了图论实在太弱,tarjan竟然刚学,放个模板明天继续学图论= 1 #include 2 #include 3 #include... 阅读全文

posted @ 2015-03-31 01:36 xiao_xin 阅读(134) 评论(0) 推荐(0)

hdu5195 n个点m条边最多删k个边尽量使某种拓扑序最大:贪心+优先队列
摘要:比赛时总感觉很混乱,其实昨天晚上仔细一想就很简单了==首先,我是知道我要拿最大id点且入度小于等于k的,那就拿,继而,需要将他相连边全部入度-1,如果入度小于等于k加入优先队列一直到队列为空,类似bfs那样找,代码实现也比线段树好多了==心塞,本来手速过A分挺高,手贱hack又是一夜回到解放前,又掉... 阅读全文

posted @ 2015-03-29 23:50 xiao_xin 阅读(303) 评论(0) 推荐(0)

邀请赛前计划(更新于3.29)
摘要:算法继续(图+树): 数论:莫比乌斯反演 图论:强联通tarjan,最小费用流,2-SAT,DLX (再不学图论真要弱到爆炸了) 数据结构:树相关(划分树,伸展树spaly,动态树lct,平衡树treap,树的重心和直径)近期比赛又有好多呀== 阅读全文

posted @ 2015-03-29 01:16 xiao_xin 阅读(115) 评论(2) 推荐(0)

CodeForces 268D Wall Bars :n层的梯子,每层四个方向只能选择一个方向搭建梯子,爬梯只能一个方向,最高不能爬超过h,问使能爬上梯顶的方案 :dp
摘要:dp好题啊!首先如何暴力的去做?dp[now][i][j][k][l]表示当前爬到now层,四个方向分别距离当前层为i j k l的方案,原来大于等于h的直接赋为h这样就能直接递推,复杂度1000*30*30*30*30,妥妥的T 1 #include 2 #include 3 #include 4... 阅读全文

posted @ 2015-03-28 01:59 xiao_xin 阅读(177) 评论(0) 推荐(0)

CodeForces 148D Bag of mice :w个白鼠和b个黑鼠,公主和龙随机轮流取鼠,龙取完会随机掉出一个鼠,谁先拿到白鼠谁赢问公主赢概率 :概率dp
摘要:我写的dp方程比较繁琐了,是很自然的想到的,应该有更优的转移方案==dp[i][j][k1][k2] 表示若有i个白鼠j个黑球: dp[i][j][0][1]:公主先走赢得概率 dp[i][j][0][0]:公主先走输的概率 dp[i][j][1][1]:龙先走赢得概率 dp[i][j][1... 阅读全文

posted @ 2015-03-28 01:43 xiao_xin 阅读(204) 评论(0) 推荐(0)

CodeForces 283B Cow Program :给定数组2-n的值,每次变化1的值,按照向佐向右轮流方向走,对于每次变化输出走出数组时走的路长 :记忆化dfs
摘要:对于2-n每个点记录向左向右走完接下来要走的路长为什么可以搜?因为只变化第一个而每次又从第一个走,那我们显然只需要记录每个点向左向右两种值要记得每次搜索都要初始1节点向右为没走过== 1 #include 2 #include 3 #include 4 using namespace std; 5 ... 阅读全文

posted @ 2015-03-28 01:23 xiao_xin 阅读(226) 评论(0) 推荐(0)

CodeForces 274B Zero Tree :每次选包含1节点的一棵子树,将该子树所有值都+1或者-1最少多少步可以使树值全部为0 :树型dp
摘要:将1设为树根节点,接下来就好想了,因为更新一个点对应到1的路全部都要更新对于一个节点u,dfs他的所有儿子节点,返回最大需要+1的操作和最大需要-1的操作再接合自身返回给父亲节点+1 -1的最大操作最后结果就是1节点+1和-1的最大操作和 1 #include 2 #include 3 #inclu... 阅读全文

posted @ 2015-03-28 01:12 xiao_xin 阅读(681) 评论(0) 推荐(0)

CodeForces 364B Free Market :每次可以从已有商品换取高于价值不超过d的没有选过的价值,选最高价值 :dp/贪心
摘要:题目中规定要换来的物品必须要是目前没有的=其实如果有重复的就可以把重复的去掉。。所以是等价的所以可以在输入的时候预处理取与不取当前值能拿到的值放入dp中然后在0的基础上一直寻找最大可交换的物品,一直到找不到结束== 1 #include 2 #include 3 #include 4 using n... 阅读全文

posted @ 2015-03-28 00:24 xiao_xin 阅读(180) 评论(0) 推荐(0)

CodeForces 285E Positions in Permutations :找出多少恰好满足k个位置的|a[i]-i|==1的n的全排列个数 :dp/思维
摘要:dp[i][j] 表示前i个位置中正好有j个位置满足good对于第i个位置 第i个位置不是good dp[i][j]= dp[i-1][j] 。 第i个位置是goodi取i+1转移没问题,但i取i-1可能被前面用过,所以记录后面三个数根据dp结果可以算出sum[i],然后sum[i] *=fac... 阅读全文

posted @ 2015-03-27 17:54 xiao_xin 阅读(505) 评论(0) 推荐(0)

CodeForces 385C Bear and Prime Numbers :给定n个数和m个询问,对于每个询问n个数里面是l-r中质数倍数和(不重复) :筛法的技巧
摘要:题意和范围:http://codeforces.com/problemset/problem/385/C好题呀==在筛质数的过程中顺带累加筛他的质数vis值最后统计就是前缀和相减== 1 #include 2 #include 3 #include 4 using namespace std; 5 ... 阅读全文

posted @ 2015-03-27 17:21 xiao_xin 阅读(271) 评论(0) 推荐(0)

CodeForces 232B Table : n*m (m>>n)的矩阵使每个n*n矩阵里面准确包含k个点,有多少种放法 :dp/数学思维/快速幂
摘要:本题关键地方在于:只要确定前n列的点阵,后面每列放多少就全部确定了==这样就可用dp和组合数预处理递推前面的n列放法,同时利用快速幂将所有列放法计算出来 1 #include 2 #include 3 #include 4 using namespace std; 5 #define LL long... 阅读全文

posted @ 2015-03-27 17:07 xiao_xin 阅读(364) 评论(0) 推荐(0)

CodeForces 314C Sereja and Subsequences :找出序列种所有不下降子序列,求出所有子序列乘积和 :技巧/树状数组
摘要:树状数组数组里面记录的值是当前以a[i]结尾的乘积和=比如当前到i的a[i],查询1-a[i]的所有值和,乘以(a[i]+1)就是当前以a[i]为结尾的乘积和=这样出现了重复计算的情况,只要减去上一次a[i]结尾的乘积和即可 1 #include 2 #include 3 #include 4 us... 阅读全文

posted @ 2015-03-27 16:54 xiao_xin 阅读(349) 评论(0) 推荐(0)

CodeForces 201A Clear Symmetry :寻找最小的n使n*n矩阵里面可以对称且不相邻的放下至少x个1 :数学/思维/找规律
摘要:首先n为偶数必然没有n为奇数优==而n为奇数最多能放(n^n+1)/2个1特别注意特判x=3的时候需要5个,因为3个那样放就相邻了== 1 #include 2 #include 3 #include 4 using namespace std; 5 int main() 6 { 7 int n... 阅读全文

posted @ 2015-03-27 16:24 xiao_xin 阅读(184) 评论(0) 推荐(0)

CodeForces 225C Barcode :一个只包含.和*的矩阵,改变最少的点+星,使每列只有一种,连续的在x-y之间 :dp
摘要:比较裸的dp了,多做dp有益身心健康==dp[i][j][kind]表示到i时,是以kind的种类结束,且他连续了j个这种dp一般想到状态,转移方程也就好想了,注意1才需要大规模累加 1 #include 2 #include 3 #include 4 using namespace std; 5 ... 阅读全文

posted @ 2015-03-27 16:07 xiao_xin 阅读(220) 评论(0) 推荐(0)

CodeForces 276D Little Girl and Maximum XOR :L到R内找出两个数,使他们亦或和最大:找规律
摘要:像我这种一遇到这种类型题目必然先打个表==然后发现其实就是找到L和R二进制由高到底第一位不同的数,低位全部变成1,想想也好明白== 1 #include 2 #include 3 #include 4 using namespace std; 5 int main() 6 { 7 long lo... 阅读全文

posted @ 2015-03-27 15:55 xiao_xin 阅读(233) 评论(0) 推荐(0)

CodeForces 525E Anya and Cubes :n个数可以对每个数拿本身,拿阶层,不拿,问和为s有多少种取法 :折半爆搜/map(map迭代)
摘要:n,LL>mp迭代是(it->first).first== 又学了一点stl 1 #include 2 #include 3 #include 4 #include 5 using namespace std; 6 #define LL long long 7 pairtmp; 8 map,LL>m... 阅读全文

posted @ 2015-03-27 15:35 xiao_xin 阅读(151) 评论(0) 推荐(0)

CodeForces 525D Arthur and Walls :只包含点和星的矩阵,需要将部分星变成点使满足点组成矩形 : dfs+思维
摘要:关键点在于,什么时候需要改变?注意到只有一个2*2的矩形里面只有一个星才需要改变这个星为点只要想到这个这题就能各种姿势搜索了===可以dfs,从可变矩形向四周拓展== 1 #include 2 #include 3 #include 4 using namespace std; 5 int xx[]... 阅读全文

posted @ 2015-03-27 15:24 xiao_xin 阅读(149) 评论(0) 推荐(0)

CodeForces 69D Dot :两个人轮流移动棋子,移动方法有n种,谁先移动到距离原点>d则输,问谁赢 :博弈+记忆化
摘要:其实本题还有一个可以沿y=x对称的操作,但仔细思考会发现其并不影响对于一个点,比如A当前先走,只要找到一个他可以跳的地方且B从这儿必跪的A就必胜=否则A跪所以可以用记忆化dfs来写,复杂度大概200*200*20 1 #include 2 #include 3 #include 4 using na... 阅读全文

posted @ 2015-03-27 00:16 xiao_xin 阅读(252) 评论(0) 推荐(0)

CodeForces 14E Camels :利用1-4拼成长为n的序列,使准确含有t个峰t-1个谷,求方案数 :dp
摘要:3 ≤ n ≤ 20,1 ≤ t ≤ 10如此小的数据接下来就能各种暴力了===dp[i][j][k][t1][t2]表示前i个字符的最后两个是j和k已有t1个峰t2个谷枚举当前放的数,转移方程容易思考了=复杂度是20*4*4*10*10*4==轻松过啊 1 #include 2 #include ... 阅读全文

posted @ 2015-03-27 00:04 xiao_xin 阅读(269) 评论(0) 推荐(0)

CodeForces 18D Seller Bob :包含win x和sell x的组合,拿取价值为2^x,这个区间被拿过就不能再拿,问所拿最大价值:贪心+大数
摘要:注意到一个重要的信息,每个x对应的sell最多只有一个=2^x>2^(x-1)+2^(x-2)+...+1因此可以按照x的sell从高到低排序,继而扫每个sell,对于每个sell从原数组结尾到开头扫到第一个win,再更新这个区间不可卖即可发现函数返回vector写些简单的大数还挺好的== 1 #i... 阅读全文

posted @ 2015-03-26 23:45 xiao_xin 阅读(149) 评论(0) 推荐(0)

CodeForces 213C Relay Race :从左上角到右下角再返回,每个价值计算一次,问最多收集价值 :dp
摘要:好像去了再回来很难记住原来走了哪些?可以从左上角同时走两个路径到右下角,那如何记录两个点的状态?注意到两个点的行+列是相同的,因此可以记录一个时间维+两个坐标维dp[time][x1][x2] time时间一点的横坐标x1和另一点的横坐标x2转移很好想啦== 1 #include 2 #includ... 阅读全文

posted @ 2015-03-26 22:33 xiao_xin 阅读(293) 评论(0) 推荐(0)

CodeForces 204A Little Elephant and Interval :计算L到R内有多少数的首尾数字相同:数学思维
摘要:转化成1-m里面多少个首尾数字相同数字对于个位数本身满足而其他的,注意到对于每一个x,x/10再加上末尾固定的数即满足,所以答案为m/10+9?最后注意到如果m的个位数 2 long long fun(long long m) 3 { 4 if(m=10) m/=10; 7 if(m... 阅读全文

posted @ 2015-03-26 22:23 xiao_xin 阅读(336) 评论(0) 推荐(0)

CodeForces 118D Caesar's Legions :n1种步兵n2种马兵,询问多少种排列方式使不超过k1种步兵相连k2种马兵相连 :dp
摘要:dp[i][j]表示前面i个步兵j个马兵排列种数,再枚举一下本次放的步兵和马兵的个数就可以dp了技巧在于:不是一个一个放兵,而是轮流种类放兵== 1 #include 2 #include 3 #include 4 using namespace std; 5 #define MOD 1000000... 阅读全文

posted @ 2015-03-26 17:33 xiao_xin 阅读(232) 评论(0) 推荐(0)

CodeForces 148E Porcelain : 书橱有n层书架,每层书架有一些书,每次取书只能取任意层最左和最右,问取m本书最大价值:dp
摘要:预处理dp[i][j]表示i层取j本书最大价值,利用前缀和来处理,枚举不拿的中间一段,这样预处理O(n^3)随后进行dp,dp[i][j]表示前i层取j本书最大价值,再枚举i层拿k本书,这样也是O(n^3),甚至接近100*10000*100,不过codeforce的速度还是承受住了== 1 #in... 阅读全文

posted @ 2015-03-26 16:47 xiao_xin 阅读(245) 评论(0) 推荐(0)

CodeForces 257C View Angle :二维平面上一些点,从原点射出两条射线将它们全部包括,求最小夹角 :几何+技巧
摘要:将每个点与x正半轴夹角利用atan求出来,都在[0,360)之间然后排序,枚举夹角相邻的两个点,ans=min(360-(the[i+1]-the[i])) 1 2 #include 3 #include 4 #include 5 #define eps 1e-10 6 using namespac... 阅读全文

posted @ 2015-03-26 16:11 xiao_xin 阅读(321) 评论(0) 推荐(0)

CodeForces 257B Playing Cubes :两人轮流向已有序列后面放红蓝木块,一人想使相邻颜色相同多一人想不想同颜色多,最后得分? :博弈+思维
摘要:对比代码量,好大的思维量==其实对于第二个拿相同的木块分的人,他当前放与上一个木块相同最优对于第一个想拿不同木块分的人,他放与上一块木块不同颜色最优第一个人放多的颜色木块更优=至于为什么?>>当前对自己有利就放,否则到后面就无利了 2 #include 3 #include 4 using name... 阅读全文

posted @ 2015-03-26 16:03 xiao_xin 阅读(552) 评论(0) 推荐(0)

CodeForces 264B Good Sequences :给定n的序列,找出最长的(相邻元素不互质)的子序列: dp
摘要:这道题目自己能想到还是挺开心的=我的做法是先用筛法将每个数的质数因子放到这个数对应的vector里面然后从首至尾扫这个数组,对每个数查看他的所有质因子最大的长度,最后更新每个质因子的长度,复杂度大概是O(n*数的质因子平均个数),挺快的 1 #include 2 #include 3 #includ... 阅读全文

posted @ 2015-03-26 12:05 xiao_xin 阅读(659) 评论(0) 推荐(0)

CodeForces 343B Alternating Current :两根绳子上下绕在一起,问拉住上下绳子能不能分开:思维+栈
摘要:图见:http://codeforces.com/problemset/problem/343/B巧妙!将红上蓝下记为1,红下蓝上记为-1,压栈,相同相消,最后栈中无元素即可以分开= 1 #include 2 #include 3 #include 4 #include 5 using namesp... 阅读全文

posted @ 2015-03-26 11:51 xiao_xin 阅读(395) 评论(0) 推荐(0)

CodeForces 343A Rational Resistance :最少需要多少个1Ω电阻并串联形成目标电阻:思维
摘要:串联1Ω电阻:R+1并联1Ω电阻:R/(R+1)这样就从目标电阻倒推回去需要多少个 1 #include 2 #include 3 #include 4 using namespace std; 5 int main() 6 { 7 long long a,b,x,tmp; 8 scanf(... 阅读全文

posted @ 2015-03-25 22:21 xiao_xin 阅读(232) 评论(0) 推荐(0)

CodeForces 132C Logo Turtle :一个字符串包含T和F,准确改变n个字符使走的距离最长:记忆化搜索
摘要:范围比较小,直接记忆化搜索=dp[go][pos][i][cnt]表示朝向,位置,字符串行进位置,剩余操作数转移方程思考=注意cnt先可以-2 1 #include 2 #include 3 #include 4 using namespace std; 5 int dp[2][205][105][... 阅读全文

posted @ 2015-03-25 22:13 xiao_xin 阅读(156) 评论(0) 推荐(0)

CodeForces 258B Little Elephant and Elections :于1-m中找出七个数,使六个数里面的4和7个数比第七个数严格小:数位dp+dfs
摘要:预处理sum数组,sum[i]表示1-m中有i个4或7的数有多少个,这个数位dp很好写然后就是枚举第七个数含有的4,7数目,dfs剩下的六个数= 1 #include 2 #include 3 #include 4 using namespace std; 5 #define LL long lon... 阅读全文

posted @ 2015-03-25 22:05 xiao_xin 阅读(191) 评论(0) 推荐(0)

CodeForces 197A Plate Game :轮流在矩形中放圆,先放不下者输 :博弈+思维
摘要:如果一个放不下第二个人赢,否则第一个人放在中间,由于对称性,第二个人必败=1 #include2 #include3 int main()4 {5 int n,m,r;6 scanf("%d%d%d",&n,&m,&r);7 if (n>=r*2&&m>=r*2) printf("Fir... 阅读全文

posted @ 2015-03-25 21:49 xiao_xin 阅读(314) 评论(0) 推荐(0)

CodeForces 234F Fence :每列染成红或绿色,红绿使用有限制,使不同的颜色相邻面积最少 :dp
摘要:比较明显的dp了=dp[i][j][flag]前i个栅栏中,红/绿颜料用了j的最小接触值具体转移见程序: 1 #include 2 #include 3 #include 4 using namespace std; 5 int dp[225][45005][2],a[225]; 6 int mai... 阅读全文

posted @ 2015-03-25 21:40 xiao_xin 阅读(237) 评论(0) 推荐(0)

CodeForces 24A Ring road :给定一个环改变最小花费使联通 :dfs
摘要:其实就两个方向,不符合就改嘛所以从任意一个点开始,两个方向更改的最小值就是答案== 1 #include 2 #include 3 #include 4 using namespace std; 5 int n,vis[1005]; 6 struct dian{ 7 int num1,num2,... 阅读全文

posted @ 2015-03-25 20:48 xiao_xin 阅读(313) 评论(0) 推荐(0)

CodeForces 70C Lucky Tickets :找到范围最小的区间使1区间找到的a和2区间找到的b使a*b=rev(a)*rev(b)大于等于w个:技巧(尺取)+map
摘要:转化成a/rev(a)==rev(b)/b这样就容易做了先判断大区间有没有到w个,然后开两个map进行尺取x=n1 y=1如果当前对数>=w x--,否则y++,中间有涉及到两个map的删减以及在满足情况下更新答案 1 #include 2 #include 3 #include 4 #includ... 阅读全文

posted @ 2015-03-25 20:42 xiao_xin 阅读(302) 评论(0) 推荐(0)

CodeChef RRMATRIX Strange Matrix :矩阵行列标号和列行标号,有多少个重合:数学+思维
摘要:设i行j列=a行b列列出表达式进行化简,会发现就是个gcd 1 #include 2 #include 3 #include 4 using namespace std; 5 int gcd(int x,int y) 6 { 7 if (y==0) return x; 8 return gc... 阅读全文

posted @ 2015-03-25 20:13 xiao_xin 阅读(96) 评论(0) 推荐(0)

CodeForces 222D Olympiad : 给出所有学生两轮考试分数,某人两轮分数和>=k,求可能的最高和最低名次:思维&贪心
摘要:最高就是第一名=最低的话贪心,一轮从大到小,另一轮从小到大,尺取最多即最多能有多少个>=k 1 #include 2 #include 3 #include 4 using namespace std; 5 int a[100005],b[100005]; 6 int main() 7 { 8 ... 阅读全文

posted @ 2015-03-25 20:08 xiao_xin 阅读(281) 评论(0) 推荐(0)

CodeForces 222B Cosmic Tables :一个矩阵对它进行k次操作,交换行、列,询问i行j列的数值:技巧
摘要:不去实际上交换行和列=用两个数组表示当前行/列是原数组哪一行/列,这样只用交换变量 1 #include 2 #include 3 #include 4 using namespace std; 5 int a[1005][1005],idx[1005],idy[1005]; 6 int main(... 阅读全文

posted @ 2015-03-25 20:01 xiao_xin 阅读(260) 评论(0) 推荐(0)

CodeForces 222A Shooshuns and Sequence :每次复制队列中第k个元素到队尾并删除队首元素,几次可以将队列变相同 : 思维
摘要:codeforces好多这样的想到很简单,想不到感觉难到爆的题目,思维!很简单:只要原序列第k个元素后面有和第k个不一样的就变不了,思考=可以就看第k个前面连续多少个和第k个相同即可= 1 #include 2 #include 3 #include 4 using namespace std; 5... 阅读全文

posted @ 2015-03-25 19:37 xiao_xin 阅读(339) 评论(0) 推荐(0)

CodeForces 295C Greg and Friends :n个人在河一边,有一船载重最大k,求最少几次将人全部运过去并求出方案 :bfs+dp
摘要:n 2 #include 3 #include 4 #include 5 using namespace std; 6 #define LL long long 7 #define MOD 1000000007 8 struct dian{ 9 LL x1,x2,flag;10 };11 que... 阅读全文

posted @ 2015-03-25 19:29 xiao_xin 阅读(274) 评论(0) 推荐(0)

CodeForces 13C Sequence :每次对数组中任一数+1或-1,最少需要多少次使数组成为不下降序列:dp
摘要:首先所有数最后所变成的数一定是原序列中有的数然后可以将开辟一个新的数组为原数组,并排个序=这样转移方程就比较好想了:dp[i][j]表示原序列中第i个数对应排序后的数组第j个数1 if (i==1&&j==1) dp[i][j]=labs(a[i]-b[j]);2 else if (i==1) dp... 阅读全文

posted @ 2015-03-25 19:17 xiao_xin 阅读(594) 评论(0) 推荐(0)

关于本分类(codeforces-好题系列)
摘要:前前后后花了将近半个月,终于将吴神的十场cf的50+题目补完了,看到了各种技巧和DP的好题,为了方便以后查阅,新增一个分类便于查找,当然本分类的题目其他分类一般都有,先去吃个饭,回来刷题解== 阅读全文

posted @ 2015-03-25 18:22 xiao_xin 阅读(1392) 评论(2) 推荐(0)

hdu5184 给出(和)前半段问后面有多少种加括号方法使合法:类似卡特兰数+逆元模板
摘要:题解说的很好呀==就是拿50和100的买票多少种方案== 1 #include 2 #include 3 #include 4 using namespace std; 5 #define LL long long 6 #define MOD 1000000007 7 LL fac[1000005]... 阅读全文

posted @ 2015-03-15 20:39 xiao_xin 阅读(150) 评论(0) 推荐(0)

hdu5185 dp:和为n且满足后一项是前一项或者+1的数列个数
摘要:其实是很裸的dp,竟然放在第四题==dp[i][j]表示当前放j和为i的方案数dp[0][0]=1;dp[i][j]=dp[i-j][j-1]+dp[i-j][j]; 1 #include 2 #include 3 #include 4 #include 5 using namespace std;... 阅读全文

posted @ 2015-03-15 19:26 xiao_xin 阅读(104) 评论(0) 推荐(0)

hdu5183 HASHMAP的判重
摘要:其实就是放了1000007个桶,将已有值放入对应桶中然后判存在就是寻找该桶内元素,如果数据刁钻会退化成n2呀===这题还有一个技巧,就是可以利用一个hash就可以先预处理出a[1]-a[2]+a[3]-a[4]....将sum[n]放入桶中,然后从i-1循环到0,如果i为偶寻找sum[i]+k,否则... 阅读全文

posted @ 2015-03-15 19:20 xiao_xin 阅读(288) 评论(0) 推荐(0)

hdu5187 快速乘法:long long相乘再取模
摘要:比如a*bif b%2==1 res=(res+a)%pelse a=(a+a)%pb/=2;==不错好思想,学习了 1 #include 2 #include 3 #include 4 using namespace std; 5 #define LL long long 6 LL mul(LL ... 阅读全文

posted @ 2015-03-14 23:26 xiao_xin 阅读(278) 评论(0) 推荐(0)

hdu5187 java快速幂
摘要:特判n==1 1 import java.io.*; 2 import java.math.*; 3 import java.util.*; 4 import java.text.*; 5 6 public class mydo { 7 public static void main(St... 阅读全文

posted @ 2015-03-14 23:22 xiao_xin 阅读(129) 评论(0) 推荐(0)

hdu4089 概率dp
摘要:n个人排队,T在第m个位置,对于队列第一个人有以下四种情况:1、激活失败,留在队列中等待下一次激活(概率为p1)2、失去连接,出队列,然后排在队列的最后(概率为p2)3、激活成功,离开队列(概率为p3)4、服务器瘫痪,服务器停止激活,所有人都无法激活了。求服务器瘫痪时T在队列中的位置 2 #incl... 阅读全文

posted @ 2015-03-07 16:16 xiao_xin 阅读(137) 评论(0) 推荐(0)

hdu5006 两个节点间为0-1电阻,求总电阻:并查集缩点
摘要:目前高斯消元最后一题吧==bug了一晚上,心好累这题是鞍山网赛的,那时弱弱的都不知高斯消元这东西==本题其实就是把电阻为0的点用并查集缩点在一起,想到这儿应该很容易错了,却因为两个问题错到现在一个问题是高斯消元里面不能return 0这个比较奇怪,怎么修改精度都过不了,因为肯定有解,也就是说会导致方... 阅读全文

posted @ 2015-03-07 02:13 xiao_xin 阅读(124) 评论(0) 推荐(0)

hdu3359 高斯消元(实数)模板:给定高斯模糊后的矩阵求原矩阵
摘要:额很裸的现在才看到==就是把原矩阵设N×M个未知量直接代入高斯消元==目前手打基本上无压力了,下面把5009做了高斯消元可以放一下了==(突然发现两个问题,整数的高消还没怎么写过?小数精度大的还没看到过?额这周末前弄好 1 #include 2 #include 3 #include 4 #incl... 阅读全文

posted @ 2015-03-06 00:08 xiao_xin 阅读(174) 评论(0) 推荐(0)

hdu4870 一个人有两个账号,每次拿rating低的号打,p的概率加50,1-p的概率减100,求任意一个号到1000分的期望场数:期望dp+高斯消元
摘要:每50分为1分,减少状态。首先dp[i][j]=p*(dp[i+1][j]或dp[j][i+1])+(1-p)*dp[i-2][j]+1 这是入门的期望公式了利用id(i,j)=(i-i*i)/2+20*i+j来标序形成环了,高斯消元解出方程,x[0]即为dp[0][0]的期望了== 1 #incl... 阅读全文

posted @ 2015-03-05 21:35 xiao_xin 阅读(140) 评论(0) 推荐(0)

hdu3976 多个电阻串并联在一起求等效电阻:高斯消元
摘要:尼玛物理渣连带着acm都不会了,KCL竟然想了半天!设n个节点的电势未知数,设入点电流为1,出点电流为1,然后可以利用KCL列出n个表达式求解,最后入点电势-出点电势即为等效电阻==又打了一遍我这个小数精度低的高斯消元模板,感觉已经可以手打啦==接下来再做几天的经典高消模型 1 #include 2... 阅读全文

posted @ 2015-03-05 00:31 xiao_xin 阅读(199) 评论(0) 推荐(0)

CodeForces 521B Cubes :在保证稳定的前提下两个人分别取最大和最小:得到最后的取数顺序(模拟+stl实现的map set pair 迭代器C
摘要:其实读懂题意之后,题目总体还是比较好做的,除了个别地方==什么叫保证稳定呢,就是取完这个木块之后,木块的上面,左上,右上不因为他被拿了而没有支点首先要能想到用包含pair的map来判断某个坐标有没有木块(stl真方便set里面放的都是当前可以取的木块,用set来实现取最大值,取最小值,加木块,删木块... 阅读全文

posted @ 2015-03-03 17:18 xiao_xin 阅读(507) 评论(0) 推荐(0)

CodeForces 521C Pluses everywhere :n位的整数放k个分隔符,所有方案能得到的数和 :组合数/数学思维/逆元
摘要:很末尾到首开始看每一位对总和的贡献=倒数第一位:贡献了C(n-1,k)次个位数倒数第二位:贡献了C(n-2,k-1)次个位数,C(n-2,k)次十位数倒数第三位:贡献了C(n-2,k-1)次个位数,C(n-3,k-1)次十位数,C(n-3,k)次倒数第四位:贡献了C(n-2,k-1)次个位数,C(n... 阅读全文

posted @ 2015-03-02 23:04 xiao_xin 阅读(220) 评论(0) 推荐(0)

codeforce gym 2011-2012 Waterloo 高斯消元:构造01矩阵,使1的相邻4个矩阵+自身为偶数
摘要:首先要知道,如果第一行可以确定那么下面的n-1行都可以确定。如何确定第一行,假设第一行m个数,然后迭代算到n+1行,根据都为0可以得到m个方程,然后高斯异或解方程,自由元地方全部放1即可,就可以把第一行求出来继而balabaka可以都算出来==似乎我的guass放自由元部分略繁琐,不急马上搞一个漂亮... 阅读全文

posted @ 2015-03-02 22:51 xiao_xin 阅读(237) 评论(0) 推荐(0)

codeforces div294 E 求到树上两点距离相同点的数目
摘要:很显然的lca树上倍增问题1.两个点是相同点ans=n2.两个点深度相同ans=n-size 包含x子树-size 包含y子树3.两个点深度不同:则ans=深的那个向上走step/2步的size-向上走step/2-1的size然后用倍增写啦==额我的solve函数好丑 1 #include 2 #... 阅读全文

posted @ 2015-03-01 23:00 xiao_xin 阅读(184) 评论(0) 推荐(0)

CodeForces 518D 问一个字符串里有多少子串首尾字符相同,去掉首尾中间价值和为0 :map/技巧
摘要:记录前缀价值和,开26个map保存某字符的某价值出现的次数,再次出现加上即可= 1 #include 2 #include 3 #include 4 #include 5 using namespace std; 6 mapmp[28]; 7 char s[100005]; 8 int main()... 阅读全文

posted @ 2015-03-01 22:53 xiao_xin 阅读(453) 评论(0) 推荐(0)

uva12716 n以内有多少对整数a、b满足(1≤b≤a)且gcd(a, b) = xor(a, b)
摘要:额现在才补==这题当时是cp各种姿势打表发现的==然后我大胆用了类似筛法写了一下,竟然给过了==规律:如果gcd(a, b) = xor(a, b) = c, 则 c = a - b然后就能利用c来筛了 1 #include 2 #include 3 int vis[30000005],sum[30... 阅读全文

posted @ 2015-03-01 22:39 xiao_xin 阅读(360) 评论(0) 推荐(0)

hdu5176 树上所有两点间(最大值-最小值)和
摘要:这是民大学长之前出的一次题目,感觉题目不错现在才写题解=化简不难得到:sig(maxval[i]−minval[i])=sig(maxval)−sigma(minval)如何求所有最大值和最小值呢,分别从大到小和从小到大排序利用并查集就行了,比较巧妙。额==题目设了一些坑,一个是一个方向的并查集会爆... 阅读全文

posted @ 2015-03-01 22:23 xiao_xin 阅读(411) 评论(0) 推荐(0)

hdu4652 m面的筛子期望掷多少次可以使最后n次完全相同/完全不同
摘要:其实归根到底还是3853那样的分两种情况看后继点,只是递推公式和化简公式较为繁琐我是参考别人的化简:http://blog.csdn.net/auto_ac/article/details/9919851化出来的公式倒是很简单== 1 #include 2 #include 3 #include 4... 阅读全文

posted @ 2015-03-01 22:16 xiao_xin 阅读(120) 评论(0) 推荐(0)

hdu4336 期望买多少包面可以集齐卡片(入门)
摘要:套一个状态压缩就是和3853一样的期望了:http://www.cnblogs.com/xiao-xin/articles/4307653.html仔细分析一下后继点在已买和未买可以很容易写出方程 1 #include 2 #include 3 #include 4 using namespace ... 阅读全文

posted @ 2015-03-01 22:06 xiao_xin 阅读(118) 评论(0) 推荐(0)

hdu4405 到达终点期望掷筛子次数,部分点加限制 (入门)
摘要:同3853:http://www.cnblogs.com/xiao-xin/articles/4307653.htmldp[i]=sum(dp[j])+1,从后向前递推,注意’滑翔‘的点 1 #include 2 #include 3 #include 4 using namespace std; ... 阅读全文

posted @ 2015-03-01 21:59 xiao_xin 阅读(116) 评论(0) 推荐(0)

hdu3853 从一个点走到终点期望消耗能量(概率dp入门题)+概率dp初步总结
摘要:首先学习概率dp,讲的很好的网站:http://kicd.blog.163.com/blog/static/126961911200910168335852/然后也有引自http://blog.csdn.net/auto_ac/article/details/9907881博文的一段话:很多概率题总... 阅读全文

posted @ 2015-03-01 21:52 xiao_xin 阅读(652) 评论(0) 推荐(0)

hdu4418 概率dp+高斯消元(近日吐槽)
摘要:因为过年,好久没更博客了,最近要狂补题解了==1.做了几天的概率dp,稍后还要写一篇概率dp和期望的总结,当然,下面几天的专题还是概率dp2.接着还要整理一个漂亮的高斯消元模板=3.最近打了几场cf还有其他bc、cc和gym的比赛,个别好题补一下题解然后就是开下一个专题和继续打比赛==-------... 阅读全文

posted @ 2015-03-01 21:23 xiao_xin 阅读(168) 评论(0) 推荐(0)

导航