自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

zx2003的博客

我可能快要遗忘了眼泪的滋味

  • 博客(18)
  • 收藏
  • 关注

原创 CF842E

这场CF是以unrated选手的身份参加的,所以打的时候节奏比较慢,然而尽管慢,总共还是爆了5发OJ(A题忘判左界大于右界*1,B题看错d的含义*2 ,出题人真是的,样例给那么水 ,C题写了一个显然(是错的)的DP*2,D题反倒*0) 等到开E题时已经只剩30分钟,看到群里Claris说 辣鸡蒟蒻Claris(524936896) 0:34:20 我啥都不维护 辣鸡蒟蒻Claris(5249

2017-08-31 22:50:21 560

原创 BZOJ3589动态树,BIT+容斥

其实这题跟动态树无关。 由于链并的结果很奇怪,而链交的结果还是链,所以利用容斥,将并转化为交。 然后大概要求O(49q)O(49q)次链交?可能rmq求lca比较合适。 第一次写rmq求lca,以后要注意rmq相关的数组大小应开到两倍,因为欧拉序列长度是2n-1 然后还要使用一个数据结构,支持1.子树加;2.询问点到根的路径上所经过点的点权和。 求出原树dfs序后,维护两颗支持区间加,单点

2017-08-27 23:08:10 345

原创 CF AIM Tech Round 4上紫记

本来CF Round427就已经有1865rating了,当时扬言要一战上紫,结果后面两场CF一场-5,一场+2,直到现在才达成目标,可惜暑假结束前或许不再有div1的round了。 这场cf时常2.5小时(然而前108分钟拿到了所有分数)。 开场看A题,以为hack点很多(flag*1,后来发现是真的),过了5分钟才AC,然后15分钟时切了B题,30分钟时切了C题,一看standing,还在2

2017-08-25 20:11:26 527 1

原创 NOI2015软件包管理器,大力卡常记

其实此题并不卡常,只是昨天有人说这题全是0/1操作,或许可以压位,然后我采纳这个idea,刷了下榜。 一开始我把朴素线段树给直接换成压位,因为复杂度太大,并不比常数正常的线段树快。这里是纯压位代码 之后根据今年NOI2017D1T1压位线段树的经验,我把纯压位改成了压位线段树,这是代码 为什么压位线段树的相对于普通线段树的优化力度,并没有压位相对于常规暴力那么大?这是因为在常规问题中,压位优化

2017-08-24 19:49:42 604

原创 CF549C

刚看到这题,第一反应是打表,然而规律很乱。 看了下官方题解,似乎是直接考虑最终状态,然而细节较多,在cf这种手速至上的地方可能当场AC并不容易?#include<cstdio>#include<cstdlib>int n,i,z,x,y,k,j,l,u,v;inline void out(int x){ puts(x?"Stannis":"Daenerys"); exit(0

2017-08-18 20:48:22 471

原创 uoj196,DP好题

传送门 orz梁大 一开始的想法是设f[i][j][k]表示i次操作后第j个数为k的概率, 但不同的f[i][j][k]好像之间并不是独立的,反正没写出来。 然后就去抄梁大的题解,似乎很巧妙。#include<cstdio> #include<cstring>#include<algorithm>using namespace std;const int mo=1000000007,

2017-08-17 23:14:28 365

原创 bzoj2863图上的DP题

题目传送门 题解传送门 这题解最后一步似乎没讲清如何容斥的,或许是在大佬眼里,这过于显然(也可能是容斥的某个常用公式?)然而我并不知道,还是证一下吧。 对于有ii个点的图,记至少有j个入度为0的结点的DAG数量是 a[j]=(ij)∗2j∗(i−j)∗f[i−j]a[j]=\dbinom{i}{j}∗2^{j*(i-j)}∗f[i−j] 并用b[j]b[j]表示恰好有j个入度为0的结点

2017-08-15 23:31:38 341

原创 POJ3304

似乎NOI2017考了计算几何。 计算几何这么不OI向的东西,竟然在CCF系列赛事的NOI中考了,感觉有必要学一学啊。 这题本来倒没什么,只是我一开始枚举两个点,直接判下标是否相等。但按照网上各种题解,应该判两个点是否相等。 这可能是做计算几何遇到的第一个坑?#include<cstdio>#include<cmath>const int N=105;typedef double db;

2017-08-15 22:08:04 436

原创 p3763DNA,倍增+hash

本来这题倒没什么,主要是我用倍增+hash+O2水到了洛谷rank1,可能是因为倍增hash的复杂度是O(log答案)O(log答案),而别的什么SA,二分hash都是O(logn)O(logn),谨以纪念。 似乎还有SAM的,然而O(n∗4)O(n*4)还是跑不过我#include<cstdio>#include<cstring> const int N=100100,mo=99824435

2017-08-14 23:31:17 289

原创 洛谷3816

这题很神奇。 一开始我读了很久才弄明白红黑树的定义。 然后觉得可能是个构造题,想了一个下午,感觉要很多特判。 又觉得可能是DP,状态是f[i][j]表示ii个节点且黑高为jj的红黑树的答案,有一个很显然的O(n2logn)O(n^2logn)算法,可惜要T。 我把转移的表打出来,以为f[i][j]肯定从二的幂次,或二的幂次减一转移而来,否则记从xx转移而来,那么似乎xx是不降的。 接着就是

2017-08-14 23:10:49 248

原创 P3590,大力随机化

刚看到到这题,在想是否可以二分答案,然而答案的可行性并不是单调的。 所以我设ll为当前答案可能的最小值,在(l,n](l,n]中随机一个数mm,再判定是否可行,若可行就l=m+1,否则不动,快要超时了就退出。 然后洛谷上居然AC了! 去bzoj上交一发,可能数据比较强,怎么调参也调不过。#include<cstdio>#include<ctime>const int N=2000005;

2017-08-10 15:12:44 291

原创 洛谷3863,时间与原始序列的转化

传送门 题解就不说了。 感觉官方题解3很妙,由此可以归纳出一个通用方法,以解决支持区间修改,单点查询历史中满足某个条件的个数这一类问题。 据说有黑魔法的(n+q)n√(n+q)\sqrt n的做法,但不如算法三+将块设为n√\sqrt n快?#include<cstdio>#include<cmath>#include<algorithm>using namespace std;con

2017-08-08 18:45:13 338

原创 UVAlive4490,状压DP的巧妙运用,注意边界

题解就不说了,网上到处是 我犯的错误有两个。第一个是强制第一个点选中,但实际上者是错的。然后大力对拍,拍了一万多组还没拍出来,然后眼调,发现最后求答案时,我是强制取出k本书,我觉得多取一定不必少取差,因为至少还可以放回去,但要是它的周围环境变了,直接放回去会变差,然后就错了。#include<cstdio>#include<cstring>const int N=155;int f[N][N

2017-08-08 18:37:41 930

原创 LibreOJ β Round #3

传送门 开场先开T1,感觉是TSP板子题,但这是完全图,然后就等价于对于一个任意的排列进行求解,这就转化成了序列问题,但这似乎没什么用。 突然灵机一动,觉得可以先将点权排序,将排序后相邻的元素之间的边纳入回路中。 但这样样例都过不去。 接着努力观察样例,想到了一个巧妙的构造,写了一发,交上去只有90分,特判了n==2的情况就AC了。 然后开T2,感觉每个点可以向自己的庇护所连一条有向边,然

2017-08-04 23:47:03 302

原创 洛谷3600,大力期望DP

传送门 这题从下午做到晚上,真是欲仙欲死。 题解区里有题解,就不说了,一开始有三个地方写挂。 1.把包含于被包含的关系想反了; 2.没有考虑一个元素不在任何询问里的情况 3.处理2问题我用的是排序,而且cmp是return l<x.l; 感觉我好菜啊。#include<cstdio>#include<cstring> #include<algorithm>typedef long

2017-08-03 20:16:39 285

原创 UOJ33树上GCD

传送门 官方题解 我写的是点分做法,一开始我是用memset(dp,0,(sizeof dp[0])*t)来清零dp数组的1到t位,但这样第t位刚好没覆盖到,然后就没过大样例。#include<cstdio>#include<cctype> #include<cstring>#include<cmath>typedef long long ll;const int N=400005;

2017-08-02 22:42:46 955

原创 bzoj1758重建计划,树的点分治+单调队列(可能是常见套路?)

传送门 似乎这题有很多种做法。 我的做法是, 先二分答案,然后再分治,这样,如果一开始就找到了路,就能很快返回。然而点分时找重心的常数比较大,我又是每次重新dfs,而不是再次利用前面的结果,然后就跑得很慢。 分治时,我是将每课子树,每个(不带权的)深度中取出(带权深度)最大的一个,组成一个数组,先求解,用双指针扫,再和前面的合并,处理时我按子树深度排了个序,从小到大处理,这样,每次合并时,操作

2017-08-02 16:20:40 220

原创 P3830 [SHOI2012]随机树

传送门 这题前两个子任务比较简单,对于询问nn,直接将最后扩展出来的点的深度,设为n−1n-1时的期望深度加一即可 后两个子任务,考虑原树的左子树有jj个节点,右子树有i−1−ji-1-j个节点,DP即可。注意DP时要用到两个变量最大值的期望值,所以状态要设为f[i][d]f[i][d]表示ii个节点的树深度为dd的概率,然后大力转移。 一开始想错了,以为max(a,b)max(a,b)的期望

2017-08-01 21:55:39 455

空空如也

空空如也

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

TA关注的人

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