自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 收藏
  • 关注

原创 hdu5748 Bellovin(LIS模板)

传送门:点击打开链接其实就是求以ai(0<=i<n)结尾的最长上升子序列的个数。最小的字典序就是f1,f2,f3......这题O(n^2)做法会超时,需要nlongn,套一下模板就好了~#includeusing namespace std;const int inf = 1000000007;const int N = 100005;int a[N], g

2016-08-20 14:49:25 410

原创 01字典树专题 (解决异或最大值问题)不断更新ing~

以前一直以为字典树没有多少用,但是最近一直碰到(难道是以前刷题太少的原因么),其中有一类问题叫做01字典树问题,它是用来解决xor的有力武器,通常是给你一个数组,问你一段连续的异或和最大是多少,正常思路贪心dp啥的都会一头雾水,但是用01字典树就能很快的解决,实现起来也十分方便。贴一个01字典树的普遍模版#define Memset(x, a) memset(x, a, sizeof(

2016-08-12 15:12:57 4041 1

原创 线段树全新版 【最近更新 9月8日】

修改自:http://www.notonlysuccess.com/在代码前先介绍一些我的线段树风格: maxn是题目给的最大区间,而节点数要开4倍,确切的来说节点数要开大于maxn的最小2x的两倍lson和rson分辨表示结点的左儿子和右儿子,由于每次传参数的时候都固定是这几个变量,所以可以用预定于比较方便的表示以前的写法是另外开两个个数组记录每个结点

2016-08-12 00:20:26 1207 1

原创 KMP算法的经典例题(poj 3461、poj 2752、poj 2406、poj1961)

传送门:POJ-3461最简单的KMP题,找出第一个字符串在第二个字符串中出现次数。#include #include #include #define Memset(x, a) memset(x, a, sizeof(x))using namespace std;const int N=1e6+10;char w[N],t[N];int next[N];int s

2016-08-03 23:48:05 9120

原创 HDU2686Matrix && HDU3376 Matrix Again (最大费用最大流 && 经典建图)

传送门:HDU 2686 Matrix传送门:HDU 3376 Matrix Again描述(HDU3376):Matrix AgainTime Limit: 5000/2000 MS (Java/Others)    Memory Limit: 102400/102400 K (Java/Others)Total Submission(s): 4093    Acce

2016-08-31 22:23:16 355

原创 poj 2135 Farm Tour 最小费用最大流模板题

传送门:poj 2135 Farm Tour描述:Farm TourTime Limit: 1000MS Memory Limit: 65536KTotal Submissions: 15031 Accepted: 5756DescriptionWhen FJ's friends visit h

2016-08-30 23:41:49 1611

原创 Codeforces Round #369 (Div. 2) D. Directed Roads (dfs+组合数学 图论)

传送门:D. Directed Roads描述:D. Directed Roadstime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputZS the Co

2016-08-30 19:06:28 581

原创 Codeforces Round #369 (Div. 2) C.Coloring Trees (基础DP)

传送门:C. Coloring Trees描述:C. Coloring Treestime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputZS the Co

2016-08-30 16:46:26 387

原创 Codeforces 429B B. Working out (DP)

传送门:B. Working outB. Working outtime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputSummer is coming! It

2016-08-28 17:00:34 440

原创 AIM Tech Round 3 (Div. 2) C(贪心)

传送门:C. Letters Cyclic Shift题意:将z可以变成y,在ascII码减一,a则变成z,可以改变一个非空子串(必须改变),求字典序最小的答案思路:贪心,除非全是a,否则找到第一个不是a的子串shift。如果全是a,最后一个a变成z#include using namespace std;string s;int main(){ std::io

2016-08-25 14:09:51 278

原创 codeforces 710E Generate a String(基础DP)

传送门:E. Generate a String题目大意 : 就是从0开始 每次可以+1或-1或*2 +-操作花费x *2操作花费y 问你达到n的最小花费是多少?解题思路 : 就是DP DP 的时候只要从0遍历到n即可 因为题目的数据范围是1e7 所以并不会超时 转移的时候一共决策三种状态 就是 1.由i-1 转移过来的 2.由i/2 转移过来的 这时候要区分下

2016-08-24 15:39:18 365

原创 codeforces 710 C. Magic Odd Square(构造)

题意:找出一个n*n的矩阵,这里面的数是一个[1,n*n]的全排列,要求所有行所有列的和为奇数;n为奇数;思路:可以发现n为奇数的时候就是每行每列的个数都是奇数,所有每行每列里面的奇数的个数都是奇数,所有就可以想到中间是一个奇数组成的45度的正方形,其他是偶数;正好用完了所有的偶数和奇数;#include #define pr(x) cout << #x << "

2016-08-24 15:08:58 317

原创 HDU 1712 ACboy needs your help (分组背包入门题)

题意:有n门课程,和m天时间,完成a[i][j]得到的价值为第i行j列的数字,求最大价值......思路:分组背包,就是第n门课程,可以做一天,可以做两天,但它们相斥,你做了一天,就不能再做一天...也就是不能再做这门课程了......(背包九讲的讲解)#includeusing namespace std;int dp[150],a[150][150];int main()

2016-08-21 17:49:26 294

原创 Codeforces Round #368 (Div. 2) A(水题) B(枚举 思维) C(数论 勾股数)

传送门:C. Pythagorean Triples  题意:  给你一个数,构造其余两个勾股数。任意一组答案即可,没法构造输出-1.  答案long long 范围。思路:  这里贴一下勾股数的构造:  当a为大于1的奇数2n+1时,b=2n2+2n, c=2n2+2n+1。  实际上就是把a的平方数拆成两个连续自然数,例如:  n=1

2016-08-21 13:23:36 451

原创 DP专题->01背包

首先01背包题目的雏形是有N件物品和一个容量为V的背包。第i件物品的费用是c[i],价值是w[i]。求解将哪些物品装入背包可使价值总和最大。从这个题目中可以看出,01背包的特点就是:每种物品仅有一件,可以选择放或不放。其状态转移方程是:f[i][v]=max{f[i-1][v],f[i-1][v-c[i]]+w[i]}对于这方方程其实并不难理解,方程之中,现

2016-08-19 14:44:20 694

原创 Codeforces Round #328 (Div. 2) A(模拟) B(数学) C(数学)

传送门:A. PawnChess题意:有一个8*8棋盘,上面有W和B两种棋子,每个棋子可以上下左右移动,要求移动的位置必须为空即字符 . 。已知任意一个W到达第一行 或者 任意一个B到达第8行 均为胜,问你谁能获胜。思路:模拟一下~#include using namespace std;char s[10][10];int main(){ for(int i=0;

2016-08-15 16:22:38 299

原创 Codeforces Round #367 (Div. 2) A(暴力) B(二分查找) C(DP) D(01字典树)

传送门:D.思路:一道01字典树的题。将要插入的数的二进制位倒着建树(为什么?因为异或时高位尽量大,结果才尽量大),即高位在深度低的节点上。用一个数组记录经过各个节点的数的个数,插入时,每经过一个点,将节点的这个值加一,删除时,则减一。查找时,当前节点的这个值大于0,说明有数经过。对于要查找的这个数的高位,如果是1,要使异或值尽量大,那么就要往0的地方走,反之,往1的地方走,实在没办法走,只有

2016-08-12 16:22:34 566

原创 codeforces round#366(div2) A(暴力)B(博弈 找规律)C(模拟 队列)

传送门:A. Hulk思路:Just alternatively print "I hate that" and "I love that", and in the last level change "that" to "it".#include using namespace std;int n;int main(){ std::ios::sync_with_s

2016-08-09 21:47:12 758

原创 BestCoder Round #86 HDU 5804(暴力),HDU 5805(前缀和后缀差值最大),HDU 5806(尺取法),HDU 5807(简单DAG 分步式DP )

传送门:hdu-5804 Price List求出所有数的和sumsum,如果q > sumq>sum那么肯定记多了。时间复杂度O(n)O(n)。PS:上来没注意long long直接WA一发,同时long long直接cin好像也是不行的,还有就是全局变量sum忘了多组输入初始化了QAQ#includeusing namespace std;typedef

2016-08-07 15:54:57 417

原创 树状数组例题(poj2299)

传送门:树状数组,具体的说是 离散化+树状数组。这也是学习树状数组的第一题.算法的大体流程就是:1.先对输入的数组离散化,使得各个元素比较接近,而不是离散的,2.接着,运用树状数组的标准操作来累计数组的逆序数。算法详细解释:1.解释为什么要有离散的这么一个过程?    刚开始以为999.999.999这么一个数字,对于int存储类型来说是足够了。

2016-08-06 22:07:08 4856 1

原创 Codeforces Round #365 (Div. 2) A(暴力) B(数学技巧) C(二分)D(线段树+离散)E(乘除法DP+约数分解+map映射)

传送门:A. Mishka and Game暴力记录两人赢的次数,最后将次数再比较一次即可#include using namespace std;int n;int main(){ int c1=0,c2=0; cin>>n; for(int i=0; i<n; i++){ int x,y; cin>>x>>y; if(x>y)c1+

2016-08-06 13:23:21 792

原创 2016百度之星资格赛

Problem A    Accepts: 1662    Submissions: 11595 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Problem Description度熊手上有一本字典存储了大量的

2016-08-04 22:51:07 473

原创 逆元的几种求法(扩展欧几里得,费马小定理或欧拉定理,特例,打表等)

乘法逆元对于缩系中的元素,每个数a均有唯一的与之对应的乘法逆元x,使得ax≡1(mod n)一个数有逆元的充分必要条件是gcd(a,n)=1,此时逆元唯一存在 逆元的含义:模n意义下,1个数a如果有逆元x,那么除以a相当于乘以x。下面给出求逆元的几种方法:1.扩展欧几里得给定模数m,求a的逆相当于求解ax=1(mod m) 这个方程可以转化为ax-my=

2016-08-04 22:24:15 47594 2

原创 hdu1251-> 统计难题(Trie树入门题)

传送门:hdu-1251 统计难题基本的字典树,字典树又称单词查找树,Trie树,是一种树形结构,是一种哈希树的变种。典型应用是用于统计,排序和保存大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。它的优点是:利用字符串的公共前缀来节约存储空间,最大限度地减少无谓的字符串比较,查询效率比哈希表高。如上图所示,每一个红色节点都一个单词,白色节点表示

2016-08-04 16:17:40 585

转载 ACM 算法 阶段性练习 (比较全面)

参考原文:http://blog.csdn.net/zhouhuanchn/article/details/17883005对原文做了部分删改。未对核心部分做改动。建议:做到50行以内的程序不用调试、100行以内的二分钟内调试成功.acm主要是考算法的,主要时间是花在思考算法上,不是花在写程序与debug上。 计划:第一阶段:练经典常用算法,同时

2016-08-03 19:02:11 6432

原创 51nod1379->索函数

传送门:点击打开链Fib[0]=0,Fib[1]=1,Fib[n]=Fib[n-1]+Fib[n-2] if n>1.定义索函数Sor(n)=Fib[0]| Fib[1] |Fib[2]|…|Fib[n].给定整数n,要求计算Sor(n)%1,000,000,007(1e9+7).Input第1行:给出一个整数T,表示有T组数据。

2016-08-02 14:59:20 621

原创 51Nod->1419最小公倍数挑战 (数论)

传送门:1419 最小公倍数挑战几天以前,我学习了最小公倍数。玩得挺久了,想换换口味。我不想用太多的数字,我想从1到n中选三个数字(可以相同)。使得他们的最小公倍数最大。Input单组测试数据。第一行有一个整数n (1≤n≤1,000,000)。Output输出一个整数表示选三个数字的最大的最小公倍数。Input示例97O

2016-08-01 20:33:08 479

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除