- 博客(70)
- 收藏
- 关注
原创 BZOJ2657: [Zjoi2012]旅游(journey)
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=2657 树形dp,注意建图,刷两次最长路。 贴代码: const maxn=200005; var son,next,id,sonp,nextp:array[0..maxn*6]of longint; link,linkp,f,que:array[0..maxn]
2017-02-13 18:40:50 254
原创 UOJ#282. 长度测量鸡
题目链接:http://uoj.ac/problem/282 一场跨年UR的A~ 非常鬼畜= = 题目大意是把长度为n*(n+1)/2的尺子恰好分成n段,使1~n*(n+1)/2中的任意整数都可以在尺子上找到两刻度(包括边界),使其间长度与之相等 其实问题可以转化一下,刻度划好后,先不考虑重复的问题,则可以量出的组合有n*(n+1)/2中(n+1个点组成的线段数),那么就有
2017-01-27 14:00:23 354
原创 【ACM_1】H - Line Gimmick
题目链接:https://vjudge.net/contest/148585#problem/HLine GimmickYou are in front of a linear gimmick of a game. It consists of $N$ panels in a row, and each of them displays a right or a left arro
2017-01-22 22:33:12 308
原创 BZOJ1650: [Usaco2006 Dec]River Hopscotch 跳石子
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1650 水题,二分枚举答案,和NOIP2015d2t1一模一样……,bzoj上要权限这题#奥妙重重 贴代码#include#include#includeusing namespace std;int L,R,len,ans,mid,n,m;int f[50005]
2017-01-04 22:14:15 382
原创 BZOJ1257: [CQOI2007]余数之和sum
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1257 暴力枚举肯定是不行的,50%还可以 计算k%x时分成两种情况: 1、x>k时显然结果是k 2、x 综上,这题就可以分段做复杂度是O(2√n) 贴代码#include#includeusing namespace std;long long
2016-12-30 15:33:10 317
原创 BZOJ1800: [Ahoi2009]fly 飞行棋
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1800 n很小,直接枚举四个点即可,注意可以用环来处理,一圈走下来,最后答案除以4,因为每一组会被重复计算4遍(四个点分别做一次起点) 复杂度O(n^4) 贴代码#include#includeint f[45],a[45];int n,ans;using na
2016-12-29 23:51:43 300
原创 BZOJ1008: [HNOI2008]越狱
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1008 容斥,方案数=总方案数-相邻各不相同方案数,乘法原理算方案数 ans=m^n-m*(m-1)^(n-1) 贴代码#include#include#define ll long longusing namespace std;const ll P=1000
2016-12-29 22:27:06 261
原创 BZOJ1192: [HNOI2006]鬼谷子的钱袋
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1192 比较关键的话是“并且不有两个钱袋装有相同的大于1的金币数” 这句话给出了两个信息: 1,大于1的袋子不能重复 2,等于1的袋子可以重复 因为袋子是越少越好,又涵盖了所有数,所以就很容易联想到拆分二进制数,答案就是二进制下的位数 贴代码#incl
2016-12-25 23:31:19 747
原创 BZOJ2456: mode
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=2456 一道神奇的题目 刚看觉得是水题,随便写了个快排就交了,多次TLE后去看了看时间空间,发现内存是1M,就果断想到xor,然而这是求众数,去网上看了下题解,开始奥妙重重,后来突然就顿悟了,就是抵消法,因为众数x的个数严格满足>n/2,所以也就是说对于每一个x都可以找到一个≠x
2016-12-25 22:56:17 284
原创 BZOJ1968: [Ahoi2005]COMMON 约数研究
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1968 水题,不要去想f(i)是怎么算出来的,考虑i对于答案的贡献,显然对于i的正整数倍都要+1,那么答案就是sigma(n/i) 贴代码:#include#includeusing namespace std;int n;long long ans;int mai
2016-12-24 23:21:11 281
原创 BZOJ2818 Gcd(欧拉函数)
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=2818题目要求的是下面这个东西↓其实这个东西和下面这个东西是等价的↓然后就是欧拉函数的裸题,phi(i)的前缀和弄一下最后ans*2就好了不过要注意的是当p为素数时,(p,p)会被重复计算,所以最后答案要减去素数个数贴代码↓#include#includ
2016-12-23 20:31:30 447
原创 欧拉函数&最大公约数
求对于1~n中每个数x在[1,x]区间内和x互质的数的个数 可以直接暴力枚举,辗转相除gcd(x,y)=1时互质 辗转相除法复杂度O(logN),所以该方法复杂度O(N^2·logN)://最大公约数 #include#includeusing namespace std;int n,tot;int gcd(int x,int y){ if (y==0) return
2016-12-22 20:37:02 1261
原创 线性筛&一般筛
一般筛,每个数被筛次数会出现>1,复杂度近似于O(NloglogN)://一般筛 var vis:array[0..1000005]of boolean; i,j,n:longint; begin assign(input,'xxs.in');reset(input); assign(output,'xxs.out');rewrite(output); fillcha
2016-12-22 17:42:11 384
原创 BZOJ2463: [中山市选2009]谁能赢呢?
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=2463如图,对于每一步,都可一看成从1*2的骨牌的一段一道另一端,先手的人的路径是一系列1*2的骨牌的组合,那么能否赢就要看能否用1*2的骨牌完全覆盖即可当n为偶数时,先手的一定有路走,所以可以赢,当n为奇数时,后手被带入必赢局,所以先手会输贴代码 var n:lon
2016-12-20 20:02:48 366
原创 POJ3368 Frequent values
题目链接:http://poj.org/problem?id=3368 RMQ,求的是在一个非降序列中任意区间[L,R]中同一个数出现最多的次数 在正常RMQ的基础上对于两端和中部分别特殊处理 贴代码 var n,Q:longint; a,right,left:array[0..100005]of longint; f:array[0..100005,0.
2016-11-14 16:03:09 276
原创 POJ3264 Balanced Lineup
题目链接:http://poj.org/problem?id=3264 RMQ裸题 贴代码 var n,Q:longint; fmax,fmin:array[0..50005,0..20]of longint; function min(x,y:longint):longint; begin if x<y then exit(x) else exit(y);
2016-11-14 14:53:03 221
原创 POJ2299 Ultra-QuickSort
题目链接:http://poj.org/problem?id=2299 树状数组求逆序对,要先离散 贴代码 var a,b,c,id:array[0..500005]of longint; n:longint; ans:int64; procedure swap(var x,y:longint); var t:longint; begin
2016-11-14 12:37:50 222
原创 POJ3321 Apple Tree
题目链接:http://poj.org/problem?id=3321 树状数组裸题,对于每个时间点,设置两个时间戳,分别记录dfs时的进栈时间和出栈时间,前缀和做差就是子数中被标记的个数 贴代码#include#includeusing namespace std;const int maxn=100005;int c[maxn],inn[maxn],oun[maxn],
2016-11-14 11:36:34 190
原创 POJ2481 Cows
题目链接:http://poj.org/problem?id=2481 树状数组裸题,求的是把线段i包含的线段有几条,可以有1个端点重合,但是不可以两个端点都重合,注意判重就好 贴代码 const maxn=100005; var a,b,c,id,ans:array[0..maxn]of longint; n:longint; procedure swap(var
2016-11-14 09:09:09 278
原创 POJ2352 Stars
题目链接:http://poj.org/problem?id=2352 树状数组裸题,求的是前k个数中X≤Xk且Y≤Yk的数对个数恰好为i的k有多少个 贴代码#include#includeusing namespace std;const int maxn=32005;int c[32005],f[15005],n;int lowbit(int x){ return
2016-11-13 22:42:39 207
原创 query
题目描述:T组数据,对于每组数据,n个数ai,Q个询问(L,R,h),询问L到R区间内≤h的数的个数 数据范围:30% n,Q≤10^3 100% T≤10 n,Q≤10^5 1≤L≤R≤n 0≤ai,h≤10^9 暴力枚举肯定是能过30%的点 对于100%的点,有一种离线做法是按照a,h把数组和询问分别排序,再用树状数组,
2016-11-13 16:39:30 375
原创 关于数字的爆炸
好像已经不是第一次发生同样的事了,我一本正经理直气壮地说题目并没有打错,然后我那个神犇学(er)长(zi)就往代码上一指,说你这个地方不就爆了吗,特别尴尬。 大概总结一下,关于计算过程中数字上会出现的问题,撇去算错==,大致就是溢出和精度的问题。 精度的问题有一种很明显,就是最终存储某个值的变量,比如说答案最后是超过int/longint范围的,那么存答案的变量就要想到开long lo
2016-11-09 22:45:55 1441
原创 堆的应用
一道堆的题目 题目描述就是有一个m行n列的数字矩阵,现在要求每行找一个数构成一个新的数列,根据排列组合的原理可知,有n^m个数列,需要找出数列加和前n小的数并输出。 数据范围:0<m≤100 ,0<n≤4000, 矩阵中的正整数均不超过10000。 之前有一道堆的比较经典的题目是给出两个长度为n的序列A和B,两个序列中个取一个数相加得到一个新数,有n*n种取法,总共得到了n*n个
2016-11-07 23:04:23 681
原创 有向无环图最长路
是昨天校内测的一题,听说也是cf上的一道原题,题意大致是说,有一个N*M的矩阵每个位置都有有一个正整数,需要你在保持每个数在其所在行列大小关系不变的情况下把图的的数缩小,并且每个数仍旧是正整数,问最小的图是长啥样的。 数据范围 0≤Aij≤10^9 0≤N*M≤10^6 很明显这是一个有向无环图的最长路问题,讲道理就是拓扑排序,然而那时候有点犯浑,写好之后出了小问题,愣是写了sp
2016-11-07 18:30:16 1222
原创 最长路问题
今天校内测,有一道有向无环图的最长路,然后脑子发热交了spfa的,被学长思想教育了一番,学长说有向无环图最长路拓扑排序肯定是比spfa优的,然后就很傻地说我做过一题spfa更优,后来回去翻到了题,发现那是个无向图,妥妥地实力打脸。 题目描述大概是讲一群小孩分糖果,开始糖果在一个人手里,第一秒开始手上有糖的人美秒把糖分给周围的人,每个人拿到糖后都用同样C的时间吃糖(吃糖和发糖是可以同时进行的)
2016-11-06 22:51:16 962 2
原创 一道黑人的题
前段时间校内测,出了一套水题,黑了俩学长,也学到了很多 其中一道题大致题意是这样的:在一个N*N的带权网格图中,找一条从左上角到右下角的路径(可以重复走),使路径上权值的最大值和最小值的差最小,求这个最小值,其中N≤100,点权≤3000 这是很久之前做的一道题的加强版,原题N≤100,点权≤110,最初做这题时,还是个没参加过NOIP的渣渣,连枚举答案+验证连通都想不到,那时候标算是
2016-11-02 22:48:54 1054
原创 BZOJ1179: 【APIO2009】Atm
事先声明:由于对博客搬家弃疗,所以手动把原本自己在其他博客上写的转过来,文末时间不作改动,只是简单粗暴的COPY【题目描述】Siruseri 城中的道路都是单向的。不同的道路由路口连接。按照法律的规定,在每个路口都设立了一个Siruseri 银行的ATM 取款机。令人奇怪的是,Siruseri的酒吧也都设在路口,虽然并不是每个路口都设有酒吧。Banditji 计划实施Sirus
2016-11-02 22:23:42 454
原创 关于Catalan数
事先声明:由于对博客搬家弃疗,所以手动把原本自己在其他博客上写的转过来,文末时间不作改动,只是简单粗暴的COPY仍然是数学卡特兰数是一个非常神奇的东西序列长这样↓1, 1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796, 58786……(从第零项开始)通常比较常用的应该是递推式和组合数的求法递推式:
2016-11-02 17:24:05 403
原创 错排递推式推导
事先声明:由于对博客搬家弃疗,所以手动把原本自己在其他博客上写的转过来,文末时间不作改动,只是简单粗暴的COPY今天听课讲容斥,提到错排,突然发现错排公式什么的好像已经忘了233努力地回忆了一下,算出前几项,终于还原出了那个递推式↓f(n)=(n-1)*(f(n-1)+f(n-2))根据人赢的教导,只要思(yi)考(yin)下错排的构造就能记住了然后就认
2016-11-02 13:27:22 480
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人