自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 怒水一记 GSS

前几天被QTREE4虐的不轻,今天zyh还说QTREE4可以用动态点分治做,为毛我的动态点分治总是在第4个点WA,科学何在啊。于是义愤填膺地,我去做GSS,又被虐了TAT。GSS1:#include#include#include#define lc o<<1#define rc o<<1|1using namespace std;const int N=50000

2015-12-31 21:46:50 410

原创 湖南集训Day6

上午三道思考题真心没法做啊。。。。只能暴力骗分了。T1整数拆分+快速幂+费马小定理,整数拆分一眼就看出来了,然而只会N^2的完全背包,于是猜想难道是母函数+FFT/NTT?然而并不会,后来才知道原来DP还能加速到Nsqrt(N),给各路神犇跪了。T2果断GG,写了个DP还写跪了,只有20分TAT。T3脑残了,一直在找规律,后来发现并无卵用,然后写了个很脑残的暴力,10分滚粗, 竟然没想

2015-12-31 21:41:32 345

原创 湖南集训Day5

T1果然是回文自动机(树),zyh讲了一下然而还是听不懂。下午的网络流看各路神犇秒题,分分钟口胡出来,真是6的不行啊,我这种弱渣只能看看,顺便围观一堆小号233333。晚上好像整栋楼都在刷Good Bye 2015,网速简直了

2015-12-31 00:00:29 300

原创 1095: [ZJOI2007]Hide 捉迷藏

发现动态树分治还是挺好玩的。。。。。。。然而效率有点拙计跑了14S多,差点以为要TLE,回头一看发现时限40S。模板抄的PoPoQQQ大爷的,顺便看了下漆神的论文,各种吓Cry。准备水下QTREE4,听说SPOJ的机子很慢,好虚啊。#include#include#include#includeusing namespace std;const int N=100000+

2015-12-30 13:23:08 873

原创 湖南集训Day4

上午的数论感觉还可以,嗯,感觉。因为毕竟我数学弱,只听懂一半什么的,感觉证明还是比较显然的。话说这金牌爷长得好像我某物理老师啊- -下午的题终于不是Clj出的了,没辣么虐了。第一题疑似回文自动机,然而并不会,于是DP水了60分。第二题想了下应该是树链剖分,然后发现搞不出来,回去水第一题,然后水完回来继续搞,发现改一下维护的量就好了,果然数据结构题一般都很水。第三完全搞不懂,

2015-12-29 18:20:49 388

原创 3611: [Heoi2014]大工程

继续水虚树。这题60S的时限把我吓坏了。然而3000多MS就A了,有幸到了rank 4,nice!。一开始还在纠结是点分治还是DP,后来想想既然能DP何不DP呢。于是就DP了。显然要维护三个量。ans2和ans3都好说,参照树上直径的求法就好了,次长+最长+1变形一下。ans1的话比较麻烦,手画个图看看,目测是当前子树的边与其他子树的边对应,然后其他子树的边再和当前子树

2015-12-28 21:08:18 578

原创 2286: [Sdoi2011消耗战

由于今天被数据结构虐了,所以果断来水一水虚树的题。这题每次树形DP一下大概是n*m的复杂度,妥妥的炸掉了。然而我们只考虑每次要处理的节点和他们的LCA们,于是就变成了sigma(k),即50W了。然后就是虚树的建法,感觉还是很有意思(不明所以)的。首先我们需要一个单调栈来维护一条从根节点延伸下来的链,然后我们有四个节点。1:当前点2:栈顶3:次栈顶4:lca(当前点

2015-12-28 19:56:14 735

原创 湖南集训Day3

上午妥妥的被虐了。第一题题目hashit我感觉是hash it and you can get half of the scores或者是 ha shit。第二题多项式取模各种不会。第三题打表找规律最后发现没找出来,本来想水个10分结果忘取模。50分滚粗了。听题解说第一题是后缀自动机,各种不会。第二题bitset+各种trick优化。第三题推结论或者找规律,貌似和某次B

2015-12-28 18:16:06 393

原创 hihoCoder 1147 时空阵

感觉我只会做这题了。。。。。。。Clj给的题解只有一句话QAQ,Holy High只能自己YY了。由于K于是乎边只能和上一层以及本层的节点相连。设状态(i,j,k)为处理到第i层,共处理了j个结点,本层有k个结点。于是就可以从(i-1,j-k,x)转移过来,转移的时候k个结点有在本层中可以有k*(k-1)/2条边,上一层点集的非空子集有2^x-1个,本层每个结点与上一层各子

2015-12-27 18:17:29 658

原创 湖南集训Day2

说好的图论呢,虽然确实和图论有点关系,不过少女陈还是在讲计数。于是乎我一天都木有听懂,各种概率期望,数学弱渣伤不起啊。话说最后还讲了下DP套DP,果断GG。弃疗了。明天还有比赛TAT,目测要跪。明天下午讲DP专题(DP套DP都讲完了还专题甚么),感觉上午会很虚(三道DP套DP???%%%%%%%)跪烂了%%%%%%%%

2015-12-27 18:15:21 352

原创 湖南集训Day1

萌萌的陈老师把我吓到了,“好的”“就酱”捋头发,简直萌出血了。然而依旧被题目虐哭了,只能水水第一题了,还只水到70分,亏我做了三个小时。。。。。。第二题直接上最大流10分TAT,第三题没时间做了,目测逆序对能拿50分,可惜了。#include#include#include#include#includeusing namespace std;typedef long lo

2015-12-26 18:34:40 470

原创 3226: [Sdoi2008]校门外的区间

受不了自己如此脑残了。卡了一个小时后发现是道水题。。。。。。一开始分类讨论5种情况,没lazy_tag的都被我写上了。结果无限RE。各种静态查错。然后果断想了个lazy-tag的方法。结果发现其实是没忽略(a,a]这种情况,真是醉了。然后发现又错了。。。。。。果然还是太弱了。重新思考了下换了一种方法。虽然说还是感觉很慢,不过还是交上去了,1000多MS,果然很慢

2015-12-25 21:08:54 370

原创 1095: [ZJOI2007]Hide 捉迷藏

太神辣太神辣太神辣炒鸡线段树神题膜岛娘OrzOrzOrz题解#include#include#include#define lc o<<1#define rc o<<1|1using namespace std;const int inf=1e9;struct Node{ int l,r,a,b,rp,rm,lp,lm,dis;}tr[1200005];int tp

2015-12-24 15:45:41 285

原创 3437: 小P的牧场

斜率优化什么的真心无脑。令sum[i]=sigma(b[k])(k则f[i]=min(f[j]+i*(sum[i]-sum[j])-mul[i]+mul[j])(j单调队列维护就好了。#include#include#includeusing namespace std;const int N=1000000+5;typedef long long ll;ll f[N]

2015-12-24 13:27:32 322

原创 3555: [Ctsc2014]企鹅QQ

先Hash一下。删掉某一位,重新Hash,然后排序,扫一遍就好了。感觉人品用光了,数组大小205打成25,WA了4次。#include#include#include#includeusing namespace std;const int N=30000+5;typedef unsigned long long ll;ll hash1[N][205],hash2[N][

2015-12-24 13:04:24 623

原创 2659: [Beijing wc2012]算不出的算式

人生第一次打表找规律(捂脸逃)。这个算式好像在单墫的《算两次》里见过,然而证明什么的忘记了。于是就打表后发现,当且仅当p=q时答案为(p-1)/2*(q+1)/2,其他时候都是(p-1)/2*(q-1)/2.#includeusing namespace std;long long p,q;int main(){ scanf("%lld%lld",&p,&q); if(p==

2015-12-24 12:29:14 407

原创 1193: [HNOI2006]马步距离

远距离贪心,近距离BFS。证明什么的布吉岛。Discuss里面看到VFK用的模拟退火,吓Cry了。#include#include#include#includeusing namespace std;const int dx[8]={1,1,-1,-1,2,2,-2,-2};const int dy[8]={2,-2,2,-2,1,-1,1,-1};bool vis[1

2015-12-23 21:29:36 574

原创 1086: [SCOI2005]王室联邦

一开始做的时候脑残了,以为会出现很多无解的情况,于是加了一堆特判,果断WA。后来发现,明明只有n然后发现题意理解错了。。。。原来多颗子树可以由根连接成省,而根可以在省外。。。。。。。于是我们有个贪心的方法。当前节点的子树集的大小一旦大于等于B,直接分成一个省,当然我们还可以证明这个省的城市数最后还有一些#include#include#includeusing n

2015-12-23 20:50:38 433

原创 2734: [HNOI2012]集合选数

Orz黄学长。看了题目N久毫无头绪。原来是自己懒得动笔。。。。。。。列个矩阵就可以很明显地看出状压DP了。#include#include#includeusing namespace std;typedef long long ll;const int mod=1000000001;int f[20][2048];int mat[20][20],bin[20],s[

2015-12-23 19:51:38 358

原创 2730: [HNOI2012]矿场搭建

点-双联通分量。显然割顶不放,一个双联通分量若有多个割顶,也不用放,剩下的就是乘法原理了。特判:原图是双联通的,任意找两个点放就好了。WF2011原题。#include#include#include#include#includeusing namespace std;const int N=500+5;typedef long long ll;struct Ed

2015-12-23 19:18:25 307

原创 1567: [JSOI2008]Blue Mary的战役地图

被VFK的Hash Killer吓出心理阴影了(不要拿辛普森公式求阴影面积谢谢)。然而还是硬着头皮YY了一个很脑残的Hash,大概就是求LCP时用的那个。不过改成二维了,还纠结了一下二维前缀和的构造什么的。然后有惊无险地A了,顺便膜Rank1的0MS,真是给跪了。#include#include#includeusing namespace std;const int x=

2015-12-23 18:50:56 512

原创 2144: 跳跳棋

跪跪跪跪跪跪。二分+LCA什么的根本想不出来啊。只好翻题解了。大概就是每一个状态有两种决策。两边的往中间跳。中间的往两边跳。第一种对应树上的两个儿子。第一种对应树上的父亲。然后就是二叉树了。就可以倍增/二分了。然后就乱搞出来了。#include#include#include#includeusing namespace std;const i

2015-12-23 15:21:15 416

原创 2006: [NOI2010]超级钢琴

RMQ+Heap+区间分裂。对于任意区间右端点i,其左端点取值在l,r之间,若左端点为m,则v为max(sum[i]-sum[m-1]),显然这里i是不变的,所以可以用rmq查询m的位置,然后计算v。现将所有右端点扫一遍,然后扔到堆里面,堆中节点记录的是决策,即右端点i,左端点区间,优先级由v决定。然后取出堆顶,v加到ans里去,分裂[l,r]为[l,m-1]和[m+1,r],rmq出

2015-12-23 11:40:26 531

原创 1093: [ZJOI2007]最大半连通子图

无事闲来水一水Tarjan,结果水挂了。。。。。。先Tarjan缩点。第一问是DAG上的最长路径(点权)第二问是最长路径的方案数。都是DP。然而第二问坑了。。。。。。因为没判重边(很明显重新建图的时候会出现重边啊)毕竟还是弱啊。#include#include#include#includeusing namespace std;const int N=1

2015-12-23 10:55:47 485

原创 1023: [SHOI2008]cactus仙人掌图

好难不会做TAT。只好Orz各路神犇的题解。搞了一个小时,终于乱搞出来了。大概就是Tarjan+树形DP+环上单调队列DP+乱七八糟的讨论。脑子有点糊了。#include#include#includeusing namespace std;const int N=50000+5;inline int read(){ int x=0;char ch; while(

2015-12-23 09:56:21 324

原创 2007: [Noi2010]海拔

第一眼看,卧槽最小割水题,nice秒A。然后交上去。???TLE???!!!!!好吧数据范围我吃了。不过好奇怪为什么之前1001的时候用最小割过了。然后还是乖乖地去学了下对偶图,就是周冬神犇的论文。然后就写了个Dijkstra A了,700多MS,不敢写SPFA了,TLE出阴影了(辛普森积分求阴影面积233333)#include#include#i

2015-12-22 19:22:00 574

原创 1040: [ZJOI2008]骑士

仙人掌暂时不会,只好来水一水基环外向树。话说无向的到底应该怎么叫?外向?内向?基环无向树(太诡异了)?然后对于这道题,由于是基环,所以要拆掉环上的一条边(u,v)然后树形DPu不选,dp。v不选,dp。取两者的最大值加到ans里去。然后我很沙茶地把当前点i当成了根,跪了好几次。#include#include#includeusing

2015-12-22 19:00:32 800

原创 2143: 飞飞侠

Dijkstra跑了25S差点以为要炸,回头看了一下发现时限是50S。。。。。。。。难得在BZOJ上找到这么水的题。NOIP水平不多说了。#include#include#include#includeusing namespace std;const int inf=1e9;struct Heapnode{ int x,y,d; bool operator<(cons

2015-12-22 17:52:20 541

原创 3110: [Zjoi2013]K大数查询

蒟蒻表示树套树是什么,能吃吗?唉无奈本蒟蒻过于沙茶不会树套树。只好整体二分水一水了。跑了近4000MS,怀疑比树套树还慢了。。。。。。#include#include#includeusing namespace std;const int N=50000+5;const int inf=1e9;struct Query{ int a,b,c,cur,tp,id

2015-12-21 21:29:40 475

原创 1833: [ZJOI2010]count 数字计数

数位DP裸题。写代码5min,交上去,WA。。。。。。。。对拍半小时,错误不断,终于过了。果然对拍还是不能少,AC率又掉了55555555#include#include#includeusing namespace std;typedef long long ll;ll f[20][20][20],ex[20];void dp(){ ex[0]=1; for(in

2015-12-20 21:26:49 314

原创 2324: [ZJOI2011]营救皮卡丘

一开始想的是边建图边跑费用流,不过这样贪心好像不行。于是只好floyd预处理后再建图了。floyd的时候需要过渡节点k小于i且k小于j,然后由于题目的关系可以砍掉一些边(快一点)。本来以为这题卡普通费用流,因为TLE了两次,结果发现是因为数组开小了QAQ #include#include#include#includeusing namespace std;const

2015-12-20 19:52:46 503

原创 3631: [JLOI2014]松鼠的新家

这题跟今年NOIP最后一题的一小部分一模一样。就是有n-1条链,求每个点被多少条链覆盖,答案就是覆盖数减一。然后有个特判,就是第一个点不用减一(因为不会是两条链的首或尾),结果我脑残判成了点1,WA了一次TAT。做法嘛,还是树上前缀和。对于任意一条链(u,v),在u和v上标记+1,在lca(u,v)和fa(lca(u,v))上标记-1,然后按dfs逆序将标记上传。最后每个节点的

2015-12-20 15:11:25 736

原创 1057: [ZJOI2007]棋盘制作

醉了。。。。。。。。题目说一个答案占一行,结果我两个答案输出到同一行了TAT。WA了三次竟然没发现,蠢哭了。极大化思想的运用。悬垂线法。#include#include#includeusing namespace std;inline int read(){ char ch;int x=0; while(ch'9')ch=getchar(); while(ch>='

2015-12-20 11:58:24 408

原创 1927: [Sdoi2010]星际竞速

拆点费用流。每个点拆成出点和入点,S向每个出点连边(v=1,c=0),代表从该点出发可以有一条指向其他点的边。S向每个入点连边(v=1,c=Ai),代表可以以此点为起点。每个入点向T连边(v=1,c=0),代表到达该点。对应边的起点的出点向终点的入点连边(v=1,c=w),代表可以从起点出发到达终点,由此,任意一个入点要么从S出发(代价为Ai)要么从另一点的出点出发(代价为w),符合题意。

2015-12-19 13:53:35 454

原创 2152: 聪聪可可

内存诚可贵,效率价更高,若为码长故,二者皆可抛。本着珍爱生命,远离边分的原则,我果断选择了点分。听说此题树形DP可过?算了懒得管。#include#include#includeusing namespace std;const int N=20000+5;const int inf=1e9;struct Edge{int to,next,v;}e[N<<1];int h

2015-12-19 11:27:44 330

原创 1047: [HAOI2007]理想的正方形

一开始很蠢地用单调队列模拟,得出了一个O(a*b*n)的方法,然后果断炸掉了。遂改良了一下,用maxv[i][j]和minv[i][j]分别表示点(i,j)往下垂的一小条(长度为n)的最大最小值,然后再模拟一遍,但是每次正方形移动的时候并不是把所有点都加进去,只加最大最小的点,于是就是O(a*b)。然后就A了^_^。#include#include#include#includeu

2015-12-19 10:18:00 480

原创 Query on a tree II

终于用树链剖分水掉了这题,LCA这种东西,树剖能做到O(N)预处理,O(logN)查询,所以果断不用倍增(每次都写错TAT)。数据貌似很坑爹的样子,第一次WA了,目测有o-th的情况,于是加了个特判,过了,0.06S好纠结以后LCA用什么做啊。

2015-12-19 09:20:05 266

原创 1034: [ZJOI2008]泡泡堂BNB

贪心。。。。。强赢强,弱赢弱,实在不行就GG啊。比之前的田忌赛马简单多了,那题用贪心讨论到明年去。。。。所以还是果断DP。不过这题就好说多了。#include#include#include#includeusing namespace std;const int N=100000+5;int a[N],b[N],n;int work(int* A,int* B){

2015-12-18 21:21:17 450

原创 2783: [JLOI2012]树

树上前缀和。。。。。。每次访问一个节点的时候查询是否存在祖先的前缀和与该节点的前缀和之差为S,若有则答案+1,因为前缀和之差为一段树链的和,就酱。用set维护一下就好了。#include#include#include#includeusing namespace std;const int N=100000+5;multisets;struct Edge{int to,

2015-12-18 18:31:35 422

原创 1935: [Shoi2007]Tree 园丁的烦恼

离线处理+离散化+BIT果然读入优化这种东西还是不能懒,没判断负数WA两次TAT。明明xi,yi都是非负数啊,为毛矩阵坐标就可以是负数了,还能不能好好玩了。#include#include#include#includeusing namespace std;const int N=500000+5;inline int read(){ char ch;int x=0,f

2015-12-18 16:37:54 583

空空如也

空空如也

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

TA关注的人

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