自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

ONE MORE TRY

把该做的做好就好了!

  • 博客(65)
  • 问答 (2)
  • 收藏
  • 关注

原创 POJ2549【hash分离链接法】

123

2017-02-28 21:29:46 93

原创 FZU2216【二分】

题意:百度。思路:一个连续数组111222233344444555666的每一个起伏转折即需要一张万能牌。然后二分一下得最长区间。#include#include#include#include#include#include#include#includeusing namespace std;typedef long long LL;const LL

2017-02-28 16:46:33 92

原创 FZU 2218【状压】

题意:给出长为n的字符串,含有前k种小写字母,求两个不含重复元素的连续子串,使得他们的长度乘积最大。思路:字符种类16 ->(套路) 状压暴力2000*2000得所有连续子串的长度,得每个状态的最优;dp使得包含字符个数最优。利用异或取反得最大值。#include#include#includeusing namespace std;const int N=1<

2017-02-28 16:41:40 343

原创 ZOJ3526【缩点思想】

yep.

2017-02-28 15:22:44 352

原创 AtCoder Beginner Contest 052

没看到Beginner,然后就做啊做,发现A,B太简单了。。。然后想想做完算了。。没想到C卡了一下,然后还是做出来了。D的话瞎想了一下,然后感觉也没问题。假装allkill.2333AtCoder Beginner Contest 052 A题意:输出大的面积?思路:max(A*B,C*D);AtCoder Beginner Contest 052 B题意:枚举过程

2017-02-27 21:23:52 610

原创 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 651

原创 51nod1117【贪心】

yep.

2017-02-25 17:00:36 493

原创 51nod1069【Nim取石子游戏】

具体看:萌新笔记之Nim取石子游戏可以这么写:#include using namespace std;typedef long long LL;int bit[35];void solve(int n){ int num=0; while(n) { n%2==1?bit[num]++:bit[num]; n/=2;

2017-02-25 15:18:32 554

原创 Codeforces Round #401 (Div. 2)【A,B,C,D】

最近状态极差。。水题不想写,难题咬不动。。哎,CF的题那么简单,还搞崩了= =、真是巨菜无比。Codeforces777A题意:略。思路:构造出3!次变换,然后输出就好。Code:#include using namespace std;int a[6][4]={{1,2,3},{2,1,3},{2,3,1},{3,2,1},{3,1,2},{1,3,2}};i

2017-02-24 21:49:28 89

原创 HDU2874【LCA(模板)】

第一题LCA,代码参考自:Ice_Crazy思路:这个最短路算法是想都别想了,可以看出这幅图就是树嘛,那么对于查询就是求树上两个结点最短距离。这里就是利用LCA的tarjan离线算法。算法的大致流程:对于每一点u,①  :建立以u为代表元素的集合。②  :遍历与u相连的结点v,如果没有访问过,对与v使用Tarjan-LCA算法,结束后,将v的集合并入u的集合。

2017-02-24 15:44:58 1221 2

原创 ZOJ2898【折半搜索】

题意:给出一系列值和对应的陷阱,对于陷阱如果存在两个就抵消,求价值最大。思路:折半枚举,利用异或#include using namespace std;typedef long long LL;int v[30],k[30];int trap[30][60],n,ans;mapmp;map::iterator it;int main(){ while(~s

2017-02-23 18:07:01 377

原创 zoj2901【DP·二进制优化】

题意:要排一个L长度的序列,当 j 放在 i 后面的时候会增加v[ i ][ j ]的值,求构成L长度序列的最大值。思路:可以想到预处理任意两点的最大值是多少,然后题目还有个限制,就是长度,那么再加一维k,DP[k][i][j] 代表长度为k,i 到 j的最大价值。但是我们看到L很大,这样不行,那么就把长度表示成二进制,dp[0][i][j]为长度为1时,i到j的最大价值,

2017-02-23 15:15:54 580

原创 萌新笔记之鸽巢原理及其应用

so cool~

2017-02-20 23:53:36 866

原创 codeforces 547B【单调栈】

题意: 有一个长度为n的序列,序列有长度为1...n的连续子序列,一个连续子序列里面最小的值称作这个子序列的子序列的strength,要求出每种长度的连续子序列的最大的strength。思路:以当前位置为最小值,向两边延伸。那我就能知道这个位置作为最小值时长度。 具体思路忘了。。。给出几组数据希望能有启发?/*101 2 3 4 5 4 3 2 1 6

2017-02-20 23:23:20 432

原创 Codeforces631C【栈维护+瞎搞】

题意:百度。思路:如果该查询的R比前面的所有都大,那么前面所有都失效。那么我先预处理出这些有效的。 那最坏的情况不就是栈里面元素(R)很多 n,n-1,n-2,n-3,n-4而且都是相反排序的。。。 总不能每次都那样循环一下,跟着他变吧。所以找特性:如果有序列132456我的栈是1 62 51 32 2那么第一步从sort完:123456

2017-02-20 23:17:37 538

原创 HDU 1506【单调栈】

思路:转化成对于某一位置为最小值求向两边最远>=他的位置,用单调栈就能轻易完成。那么ans=(left+right)*h[i];维护单调递增还是递减呢?我们能很快反应到,一旦碰到一个比他小的元素,那么之前的那个比他大的就要结束了。ok,大致了解到碰到比他小的元素,那么比他大的呢?也简单呀,对于比他大的元素,左端点已经找到了呀!那么基于双方考虑,是不是就是维护单调递增栈呢?如果碰到比

2017-02-19 22:52:00 463

原创 HDU 3410【单调栈】

思路:单调栈。鄙人的记忆:按当前为最大值的两边延伸就是维护单调递减栈。//#include #include #include #include #include #include #include #include #include #include using namespace std;typedef long long LL;typedef pair P

2017-02-19 22:49:42 483

原创 Codeforces617E【莫队算法+前缀异或】

题意:给出一系列数,对每个查询区间,计算有多少个子区间异或为k。思路:可以先预处理异或前缀,一个区间[L,R]的异或值=sum[R]^sum[L-1];如果当前区间是[a,b],加一个右端点b+1,那么这个b+1的贡献就是[a,b]区间内有多少个sum[x]=sum[b+1]^k那么我们可以每次记录num[sum[x]]即num[sum[b+1]^k],并记录num[sum[b

2017-02-19 19:49:43 1432

原创 HDU5381【莫队算法+区间GCD特性】

NO RESPONSE!

2017-02-18 22:36:38 1325

原创 ZOJ2868【折半】

yep.

2017-02-18 14:35:50 369

原创 Codeforces86D【莫队算法】

题意:给一个序列和一些区间,每次询问对区间所有不同的数,求每个不同的出现的个数的平方*其值的总和2*2*1+1*1*2思路:裸的莫队算法。补:1.cmp写错。2.LL运算不会进行转化。3.莫队的起始应该直接先处理好L,R。卡了将近2.5h,水题让自己很生气。以及不会查错误真的撒比!#include using namespace std;typedef

2017-02-18 10:20:46 551

原创 BZOJ3289【莫队算法+树状数组+离散化(附小模板)】

interesting~

2017-02-18 00:20:35 744

原创 BZOJ2038【莫队算法】

THE FIRST 莫队算法。/************************************************************** Problem: 2038 User: keyboarder_zsq Language: C++ Result: Accepted Time:1644 ms Memory:2988 kb*

2017-02-17 21:29:12 398

原创 ZOJ3352【记忆化搜索】

先膜拜watashi!前言:比赛的时候,确定的是这是一个博弈,然后就是各种瞎猜,后面想到DP[ x ][ y ]代表x表白色的状态,y表黑色的状态,无果。挂机开始。GG、巨菜。思路:这一发记忆化搜索真是玄学。仔细想想,首先我只要求权值最大,我不在乎输赢。直接就是dp[i][j][k]代表当前白在 i 位置,黑在 j 位置,k为当前局势的赌资,dp存整个子结构包括本身的最大值

2017-02-17 20:27:36 305

原创 ZOJ3359【阅读理解】

interesting~

2017-02-17 18:54:34 354

原创 HDU2846【字典树】

题意:百度。思路:一个串的插入只能搞出这个串的前缀,然而对于要query的串是子串,所以插入的时候暴力插入所有字母开头的串。。。。然后还要注意到自己的串本身会叠加字典树中的前缀,要标记掉。#include using namespace std;typedef long long LL;typedef pair PII;const int N=2e6+10;int

2017-02-16 20:22:34 344

原创 HDU2852【树状数组+二分】

NO!

2017-02-16 19:31:27 519

原创 CodeForces754D【贪心】

题意:有n个区间,每个区间覆盖区间里一段数,求最大连续区间长度被覆盖k次,并输出选取的区间。 思路:贪心;感觉一开始肯定是要把区间按left从小到大排序的。然后肯定是连续k个区间能够达到的重叠最长?因为left已经足够小了?3 21 10030 7031 78这个案例就说明这样贪心还不是准确的。 其实不管k多大,只有一个left,一个right,le

2017-02-15 12:24:37 349

原创 POJ1111【BFS】

在搜1011的时候误搜了1111,简单BFS吧,多一个X就是多四个面,每次看看他的四个面有多少个重复的,然后剪掉,最后答案加上就好了;code://#include #include#include#include#include#include#includeusing namespace std;typedef long long LL;typedef pair PI

2017-02-14 22:14:17 350

原创 玲珑OJ1088【蜜汁尺取】

前言(膜法):早上10点多开始膜的,然后到中午交了一发,感觉膜法不对啊!然后就兴起小窗了一发管理员,然后管理员给我发了in,out数据。。。可是太大并没有什么可取性。。。还是自己试,然后发现自己搞的案例都过,后面放着不玩了,然后队友给了我一题以前做过的dfs写,然后写了以后T了,后面我就跟他讲这道题。。。讲完好我说我的方法,他硬是不懂我的尺取,然后搞了一个破案例我模拟发现,卧槽我左指针

2017-02-14 21:40:56 448

原创 POJ1011【判重剪枝】

题意:给你一堆棒子,这些棒子是你从一堆一样的棒子折断而来的,现在你忘记了是从那一堆一样的棒子的长度,让你写一个程序,求最短的长度。思路:首先这个棒长肯定是和的约数,且大于最大值。然后是sort一下棒子长度从大到小(我也不知道为啥可行)最后就是一个判重剪枝:注意判重剪枝,是对相同情况的剪枝,这个相同情况就是要非常相同!这里代码那个!vis[i]很有体会啊;//#i

2017-02-14 21:25:28 406

原创 萌新三分讲解+基础题ZOJ3203【三分凸性】

yeah.

2017-02-13 22:55:57 415

原创 ZOJ3228【AC自动机】

蛤蛤?

2017-02-13 15:31:27 435

原创 Beatcoder#39+#41+#42

NO RESPONSE

2017-02-13 14:56:45 351

原创 Codeforces Round #269 (Div. 2) A,B,C,D

CodeForces - 471A首先要有四个数相等,然后剩下两个数不同就是Bear,否则就是Elephant。#include using namespace std;typedef pair PII;int num[10];int a;int main(){ memset(num,0,sizeof(num)); for(int i=1;i<=6;i+

2017-02-12 22:30:15 359

原创 POJ1699【AC自动机+状压DP_感言】

NO RESPONSE

2017-02-12 17:00:12 537

原创 HDU3065【AC自动机-AC感言】

Fourth AC zi dong ji(Aho-Corasick Automation) of life9A(其实不止交了10发...) 感言:一开始多组数据这种小数据还是...无伤大局,因为改完以后还是wa...一:最后发现是wa在构造fail指针的时候在建立临时指针查询有没有匹配到的fail,在没有匹配到的时候,结点的fail的指针要指向根。二(重要感言):在

2017-02-12 09:52:19 345

原创 HDU5880【AC自动机】

题意:给出n个字符串,再给出一个字符串,把之前出现过的字符串全部变成*思路:AC自动机,Trie树上存的值是一个字符串的长度,也就是往前的长度,然后倒着处理一遍。感想:第三题AC自动机,本来就是想脱离模板多练练,虽然之前撒比bug错了一大堆,但是收获很多啊。重要的感想有两个方面:一:在我们solve主串的时候:在通过移动失败指针处理后缀串的时候,在这道题里只

2017-02-11 21:18:05 660

原创 HDU2896【AC自动机-模板】

思路:因为不同病毒特征码不会相同。AC自动机,然后对于每一个输出即可。 注意:以上字符串中字符都是ASCII码可见字符(不包括回车);G++ MLE。 //#include #include#include#include#include#include using namespace std;const int N=1e5+10;    /

2017-02-11 16:13:21 893

原创 HDU2222【AC自动机(基础·模板)】

Frist AC zi dong ji(Aho-Corasick Automation) of life#include using namespace std;const int N=5e5+10;    //10000个串,长度为50 struct Trie{    int num;    Trie *next[27],*fail;};Trie q[

2017-02-11 14:44:13 387

空空如也

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

TA关注的人

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