
乱搞
LowestJN
强省弱OIer
展开
-
[BZOJ3388][Usaco2004 Dec]Cow Ski Area雪场缆车
题意给一张W∗LW*L的地图,每个格子有一个高度,规定只能在相邻的格子上滑雪,并且只能从高处往低处滑,可以在任意两个格子间连一条双向边,求最少连几条边,使任意两个格子可以互相到达。不多说了。直接上车 gjghfd大神题解#include <cstdio>int A[505][505],n,m,a,b,Ans1,Ans2,v[505][505],t;int w[4][2]={{1,0},{-1原创 2016-12-15 19:21:38 · 682 阅读 · 0 评论 -
[BZOJ4921][Lydsy六月份月赛 .E][二分][瞎搞]互质序列
枚举保留的那些数,可以先枚举前缀的gcd,然后因为一个数与log个和它不同的数取gcd后就会变成1,所以可以二分,这样是nlog2nn\log^2 n的,为什么网上有人说两个log能过…… 不过因为不同前缀gcd个数也只用log个,所以判一下当前枚举到的前缀gcd与上一位相同的话特殊处理就可以了……T了两发就放弃了……不应该啊#include <cstdio>#include <iostream原创 2017-06-25 16:46:02 · 597 阅读 · 0 评论 -
[背包DP][小技巧] LOJ#6089. 小 Y 的背包计数问题 && 51NOD 1597 有限背包计数问题
很妙的想法啊体积小于m−−√\sqrt m的多重背包加个前缀和优化,大于m−−√\sqrt m的完全背包具体看这里写链接内容没有Manchery都快不会做题了……#include <cstdio>#include <iostream>#include <algorithm>using namespace std;const int N=100010,M=330,P=23333333;int n,原创 2017-07-06 20:31:31 · 660 阅读 · 0 评论 -
[暴力DP][暴力STL]SNOI2017 && LOJ#2256. 英雄联盟
列出DP方程 fi,j=min{fi−1,jk+k×Ci,k|j且k≤Ki }f_{i,j}=min\{ f_{i-1,{j\over k}}+k\times C_i,k|j且k\leq K_i~\} fi,jf_{i,j}表示前ii个物品产生jj中方案时的最小价格jj很大,有101810^{18},但是jj只有2,3,5,7三种质数,所以jj能取到的值上限为(logm)4(\log m)^4,原创 2017-07-06 20:42:47 · 1249 阅读 · 0 评论 -
[分块][数学][瞎搞]Codeforces Round #424 .C Bamboo Partition
刚开始的做法是对的…然而越做头越昏,竟然用错误的例子把自己叉掉… 还好最后半个小时清醒了先列出式子要求最大的d满足 ∑i=1nd−((ai−1)%d+1)≤k\sum_{i=1}^n d-((a_i-1)\%d +1)\leq k 其中ai要先减一再取模是为了防止ai是d的倍数的情况,再推一推n×d−∑i=1nai−⌊ai−1d⌋×d≤kn\times d-\sum_{i=1}^n a_i-\原创 2017-07-16 17:22:33 · 836 阅读 · 0 评论 -
[猜结论][乱搞][博弈]Codechef . Palindromic Game
传送门猜猜结论就很水了… 如果A的字符串中不存在B的字符串中没有的字符,那么B肯定赢 如果A的字符串中存在B中没有的,且个数大于等于2,那么A赢 A放一个B中没有的,如果B中没有A中不存在的字符,那么A赢 否则的话,要不B赢,要不构不成回文串,后者也算B赢#include <cstdio>#include <iostream>#include <algorithm>#include <原创 2017-08-18 21:03:37 · 368 阅读 · 0 评论 -
[DP] Codechef .Chef And Fibonacci Array
chuansongmen 首先有一个O(m5)O(m^5)的DP,其中m为变换后可取到的最大值。然后猜猜猜发现每个数,最多加前两个数中的最小值,那么就猜不存在一种变换,使其中一个数大于100,写完DP后assert了一下,发现RE了…那么就猜不大于150,就过了… 转移的时候去掉无效的转移常数就贼小#include <cstdio>#include <iostream>#include <a原创 2017-08-18 21:11:15 · 469 阅读 · 0 评论 -
[前缀和 乱搞]BZOJ4972 .小Q的方格纸
发现询问是个等腰直角三角形,那么我们对于每条斜线作为斜边的等腰直角三角形,斜线上处理一下前缀和就可以了#include <cstdio>#include <iostream>#include <algorithm>#include <vector>#include <ctime>#define fi first#define se secondusing namespace std;co原创 2017-08-21 18:52:36 · 959 阅读 · 0 评论 -
[计数 补集转换][阈值] Codechef SEAARC.Sereja and Arcs
传送门 %%%度神 很强的计数题 题目就是求形如ABAB的个数,发现这个很难求,补集转换一下,答案就是总数减去AABB和ABBA的个数 求总数很简单,就是∏i=1n(ai2)\prod_{i=1}^n{a_i\choose 2}aia_i是第i中颜色个数 AABB的个数可以枚举p,然后用颜色的前后缀和求出来。 重点就是求ABBA了 直接求还是不好求,可以设一个阈值 SS BigBig原创 2017-08-15 15:45:22 · 716 阅读 · 1 评论 -
[LOJ#6159][美团 CodeM 初赛 Round A][暴力即正解]最长树链
枚举每一个质数,权值是这个质数的倍数的节点设为1,否则为0,那么最长长链的长度就是点权为1的点构成的最长的链。当然不用枚举所以质数,因为每个数最多有log个不同的质因数,所以只要把所有点权质因数分解,枚举出现的质数就可以了。枚举质数后dfs,复杂度是nlogn的,因为每个点有log个不同的质因数,也就是说最多枚举到log个质数要dfs这个节点,所以复杂度是对的#include <cstdio>#i原创 2017-07-06 00:47:18 · 902 阅读 · 0 评论 -
[杂题 SET维护DP] Codeforces 875E. Delivery Club
考虑二分答案只要能检验答案能不能小于 xx 就行了令 fi,jf_{i,j} 表示一个人在 ii 另一个人在 jj 是否可行那么 fi,j=or{fi−1,k | |ak−ai|≤x}f_{i,j}=\text{or}\{f_{i-1,k} ~|~ |a_k-a_i|\le x\} 这东西要set维护下就好了…#include <cstdio>#include <iostream>#includ原创 2017-10-18 07:35:04 · 495 阅读 · 0 评论 -
[二分 ST表 杂题] Codeforces875D. High Cry
早知道先看D题就不会掉这么惨了枚举左端点,那么区间或值最多变化log次二分变化的区间,再二分区间或值大于区间最大值的区间用ST表记一下区间最大值、或值#include <cstdio> #include <algorithm>#include <iostream>using namespace std;typedef long long ll;const int N=200010;int n,a原创 2017-10-17 13:11:33 · 669 阅读 · 0 评论 -
[AtCoder ARC077 .F] [字符串] [乱搞] SS
翻译下题解…可以发现一次变化是f(SS)=STSTf(SS)=STST,其中TT是S的一个前缀,|T||T|是S的最小周期 那么我们就只需要考虑变化g(S)=STg(S)=ST,因为不断变化1010010^{100}次的话,后面的部分就可以省去设TT的长度为dd,SS的长度是nn 可以证明如果d|nd|n,那么g(ST)=STTg(ST)=STT 否则,g(ST)=STSg(ST)=STS那么原创 2017-07-02 18:03:19 · 988 阅读 · 0 评论 -
[AtCoder ARC077 .E] [扫描线] [乱搞]guruguru
一次从a到b的变化可以看成一个(a,b)(a#include <cstdio>#include <iostream>#include <algorithm>#include <queue>#include <vector>#define fi first#define se secondusing namespace std;const int N=200010;typedef long原创 2017-07-02 17:39:01 · 914 阅读 · 0 评论 -
[BZOJ1385][Baltic2000]Division expression
题意给定x1/x2/x3/x4..../xnx_1/x_2/x_3/x_4..../x_n,可以加入括号改变运算顺序,询问是否可以使改变后的值为整数。可知x1x_1必为分母,x2x_2必为分子,x3,x4...xnx_3,x_4...x_n可以为分子也可以为分母。可以贪心证明若x1∗x3∗x4∗...∗x4x2\dfrac{x_1*x_3*x_4*...*x_4}{x_2}不为整数,那么就没有其他方原创 2016-12-15 20:00:27 · 451 阅读 · 0 评论 -
[BZOJ2082][Poi2010][质因数分解][乱搞]Divine divisor
题意找到最大k,使得若m为n的因数,则m^k也为n的因数,并求出有多少个m满足条件BZOJ300题留念(果然还是不够)在status里随手点开的题,因为要求最大的k,那么对于满足条件的n,不可能存在平方因子。 比如n有一个因数是p^2,因为n^k|m,即p^2k|m,则2k为更优的解。那么只要把这个数质因数分解,答案一就是最大的次数。 令x为次数最大的质数的数量,2^x-1就是答案二。刚开始暴力原创 2017-02-27 18:15:55 · 562 阅读 · 0 评论 -
[BZOJ4127][树链剖分][线段树][乱搞]Abs
题意给定一棵树,设计数据结构支持以下操作 1 u v d 表示将路径 (u,v) 加d 2 u v 表示询问路径 (u,v) 上点权绝对值的和想了半天不会做…… 搜了发题解因为d非负,所以最多n次有一个从负数变成正数,那么用线段树记录一下区间中最大的负数,当这个最大负数加上d后变成正数的时候,继续往下update,因为最多只会有n次,所以复杂度也是nlogn级别的#incl原创 2017-03-02 20:49:15 · 539 阅读 · 0 评论 -
[BZOJ3528][Zjoi2014][数学]星系调查
上一发大神的推导 后面代入求根公式就行。 因为数据只有M=N或M=N-1两种情况,所以这张图要不是一棵树要不只有一个环,是一棵树的情况很好考虑,有一个环的话要分类讨论。感觉ZJOI2014DAY1的题代码都好长,然而杜教AK了…….感觉这张图上一坨水印看着不爽,不知道怎么去……#include <cstdio>#include <cmath>#include <string>#incl原创 2017-02-01 23:16:11 · 925 阅读 · 0 评论 -
[BZOJ2628][压位][Shift-And&Shift-Or]JZPSTR
%%%Hillan学了发Shift-And算法 再手打个Bitset就可以了#include <cstdio>#include <iostream>#include <string>#include <cstring>#include <algorithm>#define N 2000010using namespace st原创 2017-03-20 23:54:23 · 1141 阅读 · 0 评论 -
[BZOJ4790][构造] CERC 2016 D. Dancing Disks
CERC2016 D题题意有个6*6的棋盘,刚开始在(1,1)这个点有n个棋子叠起来(棋子大小无序),你可以从顶部移动任意多个棋子到相邻的位置,但是只能向下或者向右移动,要求你构造一种移动方法使所以棋子移动到(6,6)并且棋子大小从底向上降序Sample input 6 1 6 5 4 3 2 output 1 1 D 6 2 1 D 6 4 1 D 6 5 1 D 6 6 1 R原创 2017-03-30 17:01:36 · 974 阅读 · 0 评论 -
[BZOJ3837][Pa2013][随机][乱搞]Filary
然而我太懒了……没有打哈希。 直觉告诉我第二个答案是选择的k个数的差的gcd,那么对于每一个质因数,记录一下序列中能被这个质数整除的数的gcd,然后就可以了#include <cstdio>#include <cstdlib>#include <iostream>#include <algorithm>#define N 100010#define M 10000010using nam原创 2017-04-10 14:27:54 · 896 阅读 · 0 评论 -
[BZOJ4373][线段树]算术天才⑨与等差数列
%%%Claris 我比较蠢……打了三个线段树,至于preipre_i可以对于每一种权值开个set记录位置,然后搞一搞#include <cstdio>#include <iostream>#include <algorithm>#include <map>#include <set>#define N 300010using namespace std;int n,m,ttt;i原创 2017-04-05 20:36:29 · 404 阅读 · 0 评论 -
[BZOJ2795] [Poi2012] [字符串hash] A Horrible Poem
一个字符串的最小周期等于这个字符串的长度-border的长度 那么如果x是字符串的周期,[l,r-x]一定和[l+x,r]相等。 然后发现x一定是字符串的长度的约数,就枚举一下约数,字符串hash判一判就可以了线性筛预处理一下可以O(log)质因数分解#include <cstdio>#include <iostream>#include <algorithm>#define N 5000原创 2017-05-27 19:47:26 · 538 阅读 · 0 评论 -
[Codeforces773E] [线段树] [找规律] Blog Post Rating
题意大概是 有一个博客,初始赞数为0,每个人会浏览这篇博客,如果这个人期望的赞数大于这边博客的赞数,他就会赞这篇博客,如果小于这篇博客,就踩一下(博客赞数-1),相同就不操作。询问对于每个i,1~i的人按照一个顺序浏览,求一种顺序使得博客最后的赞数最大,输出这个最大的赞数。先瞎猜一下,这1~i个人肯定是按照期望的赞数升序访问最优。 然后写个暴力交一下,发现T了,说明这个结论是对的那么只要维护一原创 2017-05-19 06:45:50 · 1226 阅读 · 0 评论 -
[Codeforces799F] [哈希] Beautiful fountains rows
%%%Manchery给每个区间随机一个权值,这样每个位置被哪些区间覆盖奇数次就可以用区间权值的xor值表示,假设为x,一个区间被哪些区间覆盖也可以用xor值表示,假设为y 那么满足x=y的区间就是符合条件的区间前缀和搞一搞,map记一记就好啦#include <cstdio>#include <iostream>#include <algorithm>#include <vector>#原创 2017-05-19 19:47:08 · 1398 阅读 · 0 评论 -
[dfs] Codeforces717E. Paint it really, really dark gray
如果一个点是粉色,那么就走到它父亲再走回来如果这个点是根,就去两次它的一个儿子就这样dfs一边就好了#include <cstdio>#include <iostream>#include <algorithm>using namespace std;const int N=200010;int n,cnt,a[N],G[N];struct edge{ int t,nx;}E[N<<1]原创 2017-11-28 18:55:08 · 392 阅读 · 0 评论