神题
keyboarder_zsq
你所认为的极限,其实是别人的起点。
展开
-
hdoj5698
果然以前不想搞的东西,今天他妈全来了,我要爆炸,除了说操。。。。真是欲哭无泪啊。。。。。//这道题目卡在逆元了。。。。//利用逆元计算1/(n!(m-n)!) //对于正整数a,m如果有ax≡1(modm),那么把这个同余方程中x的最小正整数解叫做a模m的逆元。problem1: //这道题为什么要有乘法逆元呢?模运算与基本四则运算有些相似,但是除法例外。其规则如下: 若a≡b (% p),则原创 2016-05-22 23:12:50 · 637 阅读 · 0 评论 -
51nod 1276 【离线处理】
思路1.: 离线处理; 具体就是把岛屿离线然后按照高度排序,把query按照从高到低排序,然后每次query只要从最高的岛屿开始找起,判断条件:如果他旁边都是没有被找过的(也就是默认是海),那么数量+1,如果两边都是岛屿,那么数量-1,我们不需要判断一边是岛屿,一边是海没意义 思路2.: 还有一个可以在线算答案 具体: 具体找出峰值谷值,用两个数组存一下,排序。然后每次二分找一下,就可以原创 2016-08-31 23:42:39 · 327 阅读 · 0 评论 -
HDU5381【莫队算法+区间GCD特性】
NO RESPONSE!原创 2017-02-18 22:36:38 · 1337 阅读 · 0 评论 -
ZOJ2868【折半】
yep.原创 2017-02-18 14:35:50 · 378 阅读 · 0 评论 -
Mujin Programming Challenge 2017A - Robot Racing【思维题】
题意:给你n个人的位置,每个人能往后跳一格或两格到无人的位置,跳到0位置,这个人消失,n个人消失组成一个排列,问有多少种排列。思路:额,搞了一整场这个A...代码也巨挫了。处理成1,3,5,7,9.....的位置情况,当出现连续的时候,比如1,3,5,7,8的话那么后面的数怎么跳都不会在前面这些数之前跳出去,bingo!所以当前就可以说明这几个就可以在现在跳出去,比如1,3,5原创 2017-02-25 22:50:45 · 658 阅读 · 0 评论 -
POJ2337【欧拉通路(模板)】
有向图存在欧拉回路的充要条件 所有顶点的 入度 和 出度 的和是 偶数,且该图是连通图。有向图含有欧拉通路的充要条件 起始点s 的入度=出度-1,结束点t的出度=入度-1 或两个点的入度=出度,且该图是连通图。这边又很有意思的一个!(字典序最小)so...我也很绝望呀。先按字典序排一下,因为链式前向星,对于一个点插入的话,后插的先遍历,所以这个排序应该是如果首字母相同就按照原创 2017-04-06 23:54:24 · 686 阅读 · 1 评论 -
51nod 1737【树的重心】
思路:树的重心也叫树的质心。找到一个点,其所有的子树中最大的子树节点数最少,那么这个点就是这棵树的重心,删去重心后,生成的多棵树尽可能平衡。考虑每一条边被统计进答案几次,若断开这条边后树形成大小为s1、s2的两个联通块则这条边最多被统计min(s1,s2)次。删去重心后任意同一联通块中的两点不构成路径。#include using namespace std;typed原创 2017-04-03 14:37:35 · 462 阅读 · 0 评论 -
UVA6284【状态前缀异或+hash】
题意: 给一个字符串,问有多少个区间能构成回文串。 构成要求只要满足存在所有种类字符数量相等,或者只存在一种的个数是奇数。 思路: 由于字符比较少,考虑 2522^{52} 状压,long long 还是吃的消的。 然后一直加入状态, 先检查这个状态是否满足。我们可以看到对于状态(单纯考虑4位): 1 1 1 0 如何从他割掉一些状态达到满足,可以看到有1 0 0 0这个是吧,原创 2017-07-06 02:17:21 · 511 阅读 · 0 评论 -
Codeforces584E【贪心】
挣扎了好久! 逆序数好6啊! 直接把s数组映射成1,2,3,4,5,6 然后从1开始强势贪,如果小于其位置的数就往前找一个值大于等于该位置的位置,然后这一步肯定是必然的(互优的),然后就写完了。复杂度n^2,然后51nod1574显得更加强势,当然少了输出路径也就变成了一些每个数都在走必然最优的步,答案也就是他们要走的区间和/2。 = =mmp挫代码还搞了个p代表位置(想挫了也就写挫了,不过原创 2017-09-06 21:57:49 · 484 阅读 · 0 评论 -
HDU6058【(1-n排列从小到大处理)+链表】
思路: 由于数组数值是1-N的一个排列,可以从小到大处理([1, n-k+1]), 对于每个值x的贡献就是枚举左边有i个>=x的个数, 然后如果能知道存在一段长度区间Left_Len都满足左边有i个>=x的个数,还能知道存在一段长度区间Right_Len都满足左边有k+1-i个>=x的个数,那么对于x,i的贡献就是Left_len*Right_len*x,因为对于当前x,它一定是最小的,比它小原创 2017-09-08 22:10:32 · 641 阅读 · 0 评论 -
HDU6215【队列+双向链表维护】
思路: 队列维护可能发生的突变点。 双向链表维护序列位置转移。 附送一题:HDU6058#pragma comment(linker, "/STACK:102400000,102400000")#include <stdio.h>#include <string.h>#include <iostream>#include <algorithm>#include <vector>#i原创 2017-09-18 14:27:12 · 764 阅读 · 0 评论 -
ZOJ3352【记忆化搜索】
先膜拜watashi!前言:比赛的时候,确定的是这是一个博弈,然后就是各种瞎猜,后面想到DP[ x ][ y ]代表x表白色的状态,y表黑色的状态,无果。挂机开始。GG、巨菜。思路:这一发记忆化搜索真是玄学。仔细想想,首先我只要求权值最大,我不在乎输赢。直接就是dp[i][j][k]代表当前白在 i 位置,黑在 j 位置,k为当前局势的赌资,dp存整个子结构包括本身的最大值原创 2017-02-17 20:27:36 · 313 阅读 · 0 评论 -
ZOJ3164【背包问题(好题)】
%%%%%%%%%%%%%%%岐爷这一发从来没写过这么旺盛的背包问题。。。想法很多,但是好难执行。题意:有N种饼干,1-N每种最多想买Ki个,ki等于0的话没有上界对于第i种饼干的权值是Ei第i种饼干的价格Pi有D钱。还有G组每组只能选一种。思路:有两种背包,一种是在一定的组里,还有没有特定关系;没有特定关系的,如果没有限定数或者限定数*花费原创 2017-01-17 22:09:22 · 601 阅读 · 0 评论 -
[YY题]HDOJ5288 OO’s Sequence
转载: 题意:求这个式子的值就是对每个区间[i, j]枚举区间中的每个数ai到aj, 判断这个a是否对[i, j]这个区间内所有数取模都不等于0, 若是,则这个区间满足条件问有多少个满足条件的区间 比如案例是这样跑的int ans=0; for(int i=1;i<=5;i++) for(int j=i;j<=5;j++) { fo转载 2016-07-20 16:59:24 · 472 阅读 · 0 评论 -
CodeForces 622C
GGGGGGGGGGGGGGGGGG原创 2016-07-11 21:45:03 · 443 阅读 · 0 评论 -
hdoj3183【思维】
思路: 处理方案非常霸气啊,无奈想不到。 说是n位去m个,那么默认就是取了n-m个数字,ok,然后m#include <iostream>#include <stdio.h>#include <string.h>#include <algorithm>#include <math.h>#include <queue>#include <stack>using namespace s原创 2016-09-10 23:40:51 · 361 阅读 · 0 评论 -
hdoj5875【二分+RMQ】
全部从我大哥那里学习得来。。 一开始硬着头皮就是根据思路上线段树,明知是T还要写(因为线段树还不是很熟,趁机练一发) 后来果然T了,然后就去学了一发RMQ的ST算法,查询是O(1)。 ST算法主要: //把dp[i,j]平均分成两段 //(因为dp[i,j]一定是偶数个数字),从 i 到i + 2 ^ (j - 1) - 1为一段, //i + 2 ^ (j - 1)到i + 2 ^ j原创 2016-09-12 21:44:38 · 470 阅读 · 0 评论 -
hdoj5821【贪心-神题】
啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊,比赛的时候直接读错题了,实力带坑队友。。。。 题意: 有两个序列都代表筐,每个筐里只有一个球,然后序列的值代表筐里的球的颜色,问你在m次操作后,a序列的球能否变成b序列的球,每总操作虽然是收集这个区间所有的球,但是每个筐只能放一个,也就是说这只是交换位置的操作。 思路: 补完题,也完全想不出可以用标记下标,然后对m个区间的a数组下标排序,因为在排序的过程中原创 2016-08-12 15:10:17 · 543 阅读 · 0 评论 -
CSU_1216【异或最大值】
转自:http://blog.csdn.net/fuyukai/article/details/50366133 题目简述: 经典题目,求一个数组中两个数异或运算的最大值。题目极其简单,但是要求的复杂度需要达到O(N * log(N)),还是比较难的。解题思路: 总的思路就是构建一棵0-1字典树,然后一个数让查找一个与其异或结果最大的数的效率达到O(log(N)),这里因为异或的特殊性质,转载 2016-09-03 17:28:19 · 400 阅读 · 0 评论 -
玲珑杯1029【大数分解质因子+排列组合】
思路: 大数分解k的质因子,然后质因子会有重复的,用排列组合n!/(a1!·a2!···ak!),n代表总个数,ai代表各个质因子的个数,质因子个数最大不会超过63个。 大叔分解质因子引用我bin模板。 code…..#include<stdio.h>#include<map>#include<string.h>#include<stdlib.h>#include<time.h>#i原创 2016-09-04 22:46:13 · 700 阅读 · 0 评论 -
51nod 1069【思维】
具体思路来自相关讨论 给个不太严谨的证明思路: 第一步:证明路径可逆,也就是如果(a, b) -> (x, y)可行,则(x, y) - > (a, b)可行 这个比较直观,只需要分别由(a +b, b) (a, a + b), (a - b, b), (a, a - b)推回(a, b)即可: 例如:(a, a - b) - > (b, a - b) - > (b, a) -> (a +原创 2016-09-08 10:55:06 · 552 阅读 · 0 评论 -
51nod 1456【强连通,缩点,并查集】
话说这道题的机遇是看到了http://blog.csdn.net/u010885899/article/details/50611895很有意思;然后就去补了这题 题意: 建最少的边使得给出的点相连。 思路: 直观感觉,如果a->b,b->c,那么a->c就不用建了。 然后还有一种情况就是回路a->b->c->a,这样的话要有n条。 所以其实思路就是这样,弱连通的时候n个点就是+n-1条原创 2016-09-29 00:18:07 · 540 阅读 · 0 评论 -
E. Similarity of Subtrees【hash】
题意:给你一棵树,问你有多少个组合的相似;相似是a结点的子树和b结点的子树的每一层的结点数相等;思路:HASH来搞;主要也没学过散列表,以及一个散列函数的构造;其实看下面程序很简单,手跑案例就可以发现,每个结点有:a*pri^b,系数a就是在该节点下的b层结点个数。暂时只理解到这个层面上,以后能用这个思想再用吧;#pragma comment(linker, "/S原创 2016-10-05 00:53:33 · 108 阅读 · 0 评论 -
Codeforces734E【缩点+树的直径】
思路: 想不到树的直径就GG了啊… 先缩点,然后缩成一棵相邻两层节点就是不同的个数,然后如果考虑一棵树是 1-0-1-0-1-0-1-0-1-0这样的话其实就是中间开始搞,然后最少变node_num/2次变成同一种颜色。然后考虑一棵复杂的树,当树上最长距离像这样在变的时候其余枝干肯定是会被连带到的!//#pragma comment(linker, "/STACK:102400000,10原创 2017-10-15 22:00:30 · 391 阅读 · 0 评论