
2001-2250
Mmh2000
这个作者很懒,什么都没留下…
展开
-
2039: [2009国家集训队]employ人员雇佣
题目链接题目大意:给定n个人,每个人有一个佣金,i和j如果同时被雇佣会产生2*E(i,j)的效益,i和j如果一个被雇佣一个不被雇佣会产生E(i,j)的亏损,求最大收益题解:转化成最小割,和S相连表示不选,和T相连表示选取,割表示损失的部分对于雇佣的人i和T相连,就要和S割断,所以S向i连容量为雇佣费用的边 对于雇佣的人i和S相连,就要和T割断,损失∑E[i][j],向T连边∑E[i]...原创 2017-09-14 07:32:28 · 389 阅读 · 0 评论 -
2243: [SDOI2011]染色
11 } “`原创 2017-09-09 06:51:11 · 332 阅读 · 0 评论 -
2019: [Usaco2009 Nov]找工作
题目链接题目大意:一头牛在一个城市最多只能赚D元,可以往返,求最多赚的钱数题解:把边权+D,然后有正环说明无解我的收获:好久前的代码了……#include <queue>#include <cstdio>#include <cstring>#include <iostream>using namespace std;queue <int> q;const int M=505;#defin原创 2017-05-31 20:09:21 · 313 阅读 · 0 评论 -
2056: gift? 高精度?
题目链接题目大意:输入a,b,c,d,e,f,g,h,i,求2^a+2^b+2^c+2^d+2^e+2^f+2^g+2^h+i题解:卡内存……膜了一发题解。发现极限数据比ULL大1,特判掉。剩下的就可以乱搞了我的收获:smg#include <cstdio>unsigned long long a[10]; int t;int main(void) { scanf("%d", &t)原创 2017-05-12 20:48:45 · 300 阅读 · 0 评论 -
2111: [ZJOI2010]Perm 排列计数
题目链接题目大意:magic数列当且仅当2<=i<=N时,Pi>Pi/2,求magic数列数量题解:第一项为1,把i的两个儿子看做i*2和i*2+1,这样就形成了一颗以1为根的有根树,然后按照小根堆填就好了,变成求堆的数量 可能n>p导致np不互质,求组合数不能直接用逆元,要用lucas定理我的收获:强啊#include <cstdio>#include <cstring>#include原创 2017-06-28 20:56:54 · 468 阅读 · 0 评论 -
2241: [SDOI2011]打地鼠
题目链接题目大意:给定一个m*n的洞穴矩阵,每个洞穴里面有若干地鼠,我们需要选定一个r*c的锤子进行击打,每次击打必须保证r*c的范围内所有洞穴均有地鼠,且每次击打只会打掉每个洞穴恰好一只地鼠,求最小击打次数题解:由于数据水,这题O((nm)3),O((nm)2),二分乱搞都能过……O((nm)^3),O((nm)^2),二分乱搞都能过……首先枚举长和宽,然后判断可行性,判断的时候就是二维区间修改+原创 2017-07-19 22:29:41 · 494 阅读 · 0 评论 -
2006: [NOI2010]超级钢琴
题目链接题目大意:给定一个序列,要求找到连续的序列满足长度在[L,R]范围内,询问前K大的满足条件的序列的和题解:首先把区间和变为区间端点的前缀和相减 假设已经确定了所选区间的右端点,那么左端点则被固定在一个范围内 可以用ST表查询区间最值。初始把每个可行的右端点找出最优的左端点扔进堆里当取出一个最优左端点之后,对于这个右端点就不能取这个左端点了,需要删掉它,设要在[a,b]中删掉y,把[a,b原创 2017-09-11 09:02:12 · 323 阅读 · 0 评论 -
2179: FFT快速傅立叶
题目链接题目大意:高精度乘法题解:FFT模板,具体见注释我的收获:模板题#include <iostream>#include <cstdio>#include <cstring>#include <cmath>#include <complex>using namespace std;#define pi acos(-1)typedef complex<double> C;//卡常数原创 2017-06-24 10:23:46 · 369 阅读 · 0 评论 -
2127: happiness
题目链接题目大意:给定一个座位图,相邻两人之间是朋友,每个人选择学文或学理会有相应的喜悦值,一对朋友同时选择学文/学理也会有相应的喜悦值,求喜悦值之和最大的方案题解:Orz神奇的解不定方程建图我的收获:跪啊#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>using namespace std;原创 2017-09-11 16:06:53 · 304 阅读 · 0 评论 -
2124: 等差子序列
题目链接题目大意:给出n的排列,求是否存在长度大于等于3的等差数论题解:显然只需要求长度等于3的等差数列 枚举等差中项b,判断是否存在a+c=2b,其中a在b之前,c在b之后b,判断是否存在a+c=2b,其中a在b之前,c在b之后 两个bitset维护左边的20000-a和右边的c,如果把左边右移20000-2b后与右边的与不为0则存在我的收获:bitset大法吼#include <iostre原创 2017-10-20 08:16:10 · 402 阅读 · 0 评论 -
2038: [2009国家集训队]小Z的袜子(hose)
题目链接题目大意:求在区间[L,R]中选2个数字,数字相同的概率题解:莫队算法 处理问题:不带修改的区间询问(加上时间倒流可以处理简单修改) 使用要求:[l-1,r] [l,r-1]的结果可由[l,r]的答案在O(1)或O(logn)的时间内推出 对于这道题来说,只需要知道C(n,2)=n*(n-1)/2就可以做啦我的收获:复制了莫队模板(雾#include <cmat...原创 2017-03-01 22:58:40 · 398 阅读 · 0 评论 -
2242: [SDOI2011]计算器
题目链接题目大意:你被要求设计一个计算器完成以下三项任务: 1、给定y,z,p,计算Y^Z Mod P 的值; 2、给定y,z,p,计算满足xy≡ Z ( mod P )的最小非负整数; 3、给定y,z,p,计算满足Y^x ≡ Z ( mod P)的最小非负整数。题解:快速幂+exgcd+bsgs模板我的收获:……#include using namespace std;原创 2018-01-14 15:36:31 · 292 阅读 · 0 评论 -
2194: 快速傅立叶之二
题目链接题目大意:计算c[k]=∑k≤i<na[i]×b[i−k]c[k]=\sum\limits_{k≤i<n}a[i]\times b[i-k]题解:令a[n−i−1]=a[i],i∈[0,n)a[n-i-1]=a[i],i \in [0,n) c[k]=∑k≤i<na[n−i−1]×b[i−k]c[k]=\sum\limits_{k≤i<n}a[n-i-1]\times b[i-k]令d[n原创 2018-02-02 14:21:26 · 271 阅读 · 0 评论 -
2125: 最短路/3047: Freda的传呼机
题目链接题目大意:静态仙人掌最短路题解:丢链接跑……我的收获:233333//From popoqqq#include <map>#include <vector>#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>#define M 10100#define INF 0x3f3f3f3f原创 2018-02-03 08:10:16 · 293 阅读 · 0 评论 -
2142: 礼物
题目链接题目大意:小E从商店中购买了n件礼物,打算送给m个人,其中送给第i个人礼物数量为wi。请你帮忙计算出送礼物的方案数(两个方案被认为是不同的,当且仅当存在某个人在这两种方案中收到的礼物不同)。由于方案数可能会很大,你只需要输出模P后的结果。题解:公式随便YY一下,可以发现是Cw1n∗Cw2n−w1∗Cw3n−w1−w2...%PC_n^{w_1}*C_{n-w_1}^{w_2}*C_{n-w_原创 2018-02-26 16:16:53 · 225 阅读 · 0 评论 -
2165: 大楼
题目链接题目大意:一个图,若干单向边,从1出发,求一条经过边权值>=m的路径的最少边数题解:我YY了一个把1703加上二分的naive做法……但是这样是两个log的……TLE,在JZOJ上可以得40pts赶紧Orz hzwer保平安我的收获:Orz//TLE#include <bits/stdc++.h>using namespace std;#define ll long long#defi原创 2018-02-23 16:16:41 · 249 阅读 · 0 评论 -
2186: [Sdoi2008]沙拉公主的困惑
题目链接题目大意:求1~n!中与m!互质的数的个数%R(一个质数),多组询问题解:根据phi的定义可以得到phi(m!)表示[1,m!)中与m!互质的数的个数有一个性质:gcd(i,j)=gcd(i+j,j)gcd(i,j)=gcd(i+j,j)那么gcd(i,m!)=1,gcd(i+m!,m!)=1,所以每个m!以内和m!互质的数都可以通过这个方法拓展对于每个i,算上自己一共可以拓展n!/m!次,原创 2018-02-24 09:08:52 · 206 阅读 · 0 评论 -
2115: [Wc2011] Xor
题目链接题目大意:给定一幅边权非负的无向连通图,求一条从1到n的路径,使得路径上边权的异或和最大(不需要是简单路径)题解:dfs处理出1到每个点的任意一条路径的边权的异或和,同时处理出图中所有环的边权异或和发现把1到n的任意一条路径的异或值与任意个环的异或值求异或就可以得到所有1到n的路径的异或和……然后是经典线性基了我的收获:2333#include <cstdio>#include <cstr原创 2018-03-25 21:38:05 · 279 阅读 · 0 评论 -
2152: 聪聪可可
题目链接题目大意:给定一棵树,每条边上有边权,求距离为3的倍数的有序点对题解:考虑路径经过重心的情况,记录到根的距离%3=0,1,2的点数 ans=sum[0]2+2∗sum[1]∗sum[2],乘法原理ans=sum[0]^2+2*sum[1]*sum[2],乘法原理我的收获:#include <iostream>#include <cstring>#include <cstdio>#in原创 2017-09-08 14:57:38 · 245 阅读 · 0 评论 -
2054:疯狂的馒头/2375:疯狂的染色
题目链接题目大意:给定染色的顺序,每次染一个区间,每次染色会覆盖之前颜色,输出m次涂色后的每个点的颜色题解:并查集离线逆序处理维护区间操作。用f[i]=x来表示i到x-1这段区间已经被染过色了。当染过色之后,f[i]=i+1。这样就可以跳过已染色的区间,一直顺着f[i]染了。PS:我木有权限,代码没有提交#include <iostream>#include <cstring>#include原创 2017-01-23 18:58:46 · 415 阅读 · 0 评论 -
2222: [Cqoi2006]猜数游戏
题目链接题目大意:猜数字游戏,求最优情况下猜的次数题解:编号……本来以为是按照二分来猜,后来发现连样例都推不出来。网上也找不到题解……不过看上去比较像dp我的收获:……#include<iostream>#include<cstdio>using namespace std;int n;int main(){ scanf("%d",&n); if (n==296) {pri原创 2017-02-02 16:28:54 · 1256 阅读 · 0 评论 -
2143: 飞飞侠
题目链接题目大意:网格图,在(i,j)花费a[i][j]可以跳到曼哈顿距离小于等于b[i][j]的点,求三个点到一起的最小花费题解:最短路原创 2017-03-18 14:26:08 · 408 阅读 · 0 评论 -
2144: 跳跳棋
题目链接题目大意:数轴上三个棋子,初始位置x,y,z。用最少操作次数变成a,b,c。每次操作选一个棋子,以另一棋子为中轴跳动,跳跃后距离不变,一次只能跳过一颗棋子题解:观察发现,状态的转移形成了一张图,可以在图上跑最短路,正确性显然,但这样比较容易T(我没写)。再观察一下,发现若(x,y,z)往两边跳得到状态(u,v,w),那么(x,y,z)是(u,v,w)往中间跳得到状态,也就是说,这个图实际上是原创 2017-03-05 20:12:55 · 580 阅读 · 0 评论 -
2190: [SDOI2008]仪仗队
题目链接题目大意:n*n方队,求队伍整齐时能看到的学生人数题解:可以推出结论:能被看到的坐标互质,因为若有(i,j),且gcd(i,j)=d,则(i,j)会被(i/d,j/d)挡住 然后就可以反演了下面考虑找规律 观察矩阵的下三角, 可以发现,每一竖行(自左到右编号0–n-1)能够被看到的点的数目就是ϕ(i),然后加上对角线 答案就是∑(ϕ[i])∗2+1,i=1…n-1(容斥原理)正常原创 2017-04-02 18:24:49 · 767 阅读 · 0 评论 -
2049: [Sdoi2008]Cave 洞穴勘测
题目链接题目大意:动态树,要求link,cut,查询两点连通性题解:LCT,对于query操作,查询x在原树的根就好了我的收获:LCTget#include <iostream>#include <cstdio>#define M 100005using namespace std; int n,m,y;int fa[M],c[M][2],st[M];bool rev[M]; in原创 2017-06-06 10:19:09 · 230 阅读 · 0 评论 -
2120: 数颜色/2453: 维护队列
题目链接题目大意:给一个数列,资磁单点修改和求[l,r]中不同数字个数题解:正解:分块或带修莫队。离散化暴力跑的飞快……我的收获:暴……暴力#include <iostream>#include <cstdio>using namespace std;int n,m,tot,T;int mp[1001005],f[11005],a[11005];int ID(int x){return mp[原创 2017-05-31 20:16:59 · 567 阅读 · 1 评论 -
2079: [Poi2010]Guilds
题目链接题目大意:无向图,把图上的点染成黑白色,要求黑色点要至少和一个白色点相连,白色点同理,求是否有解题解:无解条件:存在联通块只有一个点。若联通块点数大于1,则按照生成树每一层染色即可我的收获:#include #include #include using namespace std;const int M=500005;int n,m,x,y;bool f[M原创 2017-06-28 21:35:28 · 324 阅读 · 0 评论 -
2208: [Jsoi2010]连通数
题目链接题目大意:求无向图中可达点对数题解:直接 n2n2n^2dfs能过…… 使用bitset优化传递闭包,直接floyed是 求出scc,缩点,在DAG上不断或运算是我的收获:bitset强啊……SCC#include <iostream>#include <cstdio>#include <cstring>#include &...原创 2017-06-28 19:09:58 · 255 阅读 · 0 评论 -
2008/2109/2535: [Noi2010]航空管制
本来是三倍经验,但是2008没有special judge过不了,只有双倍了23333原创 2017-07-17 19:41:06 · 401 阅读 · 0 评论 -
2212: [Poi2011]Tree Rotations/3702: 二叉树
题目链接题目大意:有一个n个叶子结点的树,叶子结点上有权值,且为[1,n]的排列。 你可以交换任一非叶子结点的左右儿子,请最小化中序遍历后的逆序对个数。题解:发现对于一个节点x,它的左儿子L,右儿子R,无论儿子的子树怎么换,对该节点统计的答案都没有影响……,对每个结点的子树分开考虑(因为两颗互不包含的子树互不影响),所有节点的两个子树间的逆序对个数总和就是整个树的逆序对个数总和。对每个叶子节点维原创 2017-07-16 19:57:09 · 324 阅读 · 0 评论 -
2036: 聪明的阿卑多
题目链接题目大意:求用最少多少个数可以表示出1–n的所有数,并求方案数题解:第一问同1192,第二问暴力dp即可,dp[i][j][k]表示前i枚硬币,用了j枚,表示k个数字的方案数dp[i][j][k]表示前i枚硬币,用了j枚,表示k个数字的方案数我的收获:强强强#include <vector>#include <algorithm>#include <utility>#include <原创 2017-07-23 08:58:04 · 675 阅读 · 0 评论 -
2118: 墨墨的等式
题目链接题目大意:给定n个物品,每个物品有一个非负价值,问[L,R]区间内有多少价值可以被凑出来题目大意:给定 n 个物品,每个物品有一个非负价值,问 [L,R] 区间内有多少价值可以被凑出来 题解:先用前缀和转化一下问题,变成求[0,X][0,X]内能凑出的数如果物品数量可以为负,求个gcd就可以了现在物品数字非负 令mn=min(a[i]),若x能被凑出,则x+mn可被凑出令m原创 2017-08-06 22:45:11 · 311 阅读 · 0 评论 -
2173: 整数的lqp拆分
题目链接题目大意:给出输出n。设一种拆分为n=x1+x2+x3,那么这种拆分的价值为F(x1)*F(x2)*F(x3),F为斐波那契额数列。求所有拆分的价值之和。题解:Orz Orz我的收获:强啊#include<cstdio>#include<cstdlib>#include<cstring>#include<algorithm>#include<cmath>#define md 100原创 2017-08-06 08:36:34 · 567 阅读 · 0 评论 -
2150: 部落战争
1原创 2017-08-02 23:27:06 · 288 阅读 · 0 评论 -
2002: [Hnoi2010]Bounce 弹飞绵羊
题目链接题目大意:维护数列,a[x]表示从x出发会到达x+a[x],支持两种操作 1.单点修改 2.查询从x出发经过几次会弹飞(坐标超过n)题解:两种解法,LCT|分块分块: 仅记录每个点几步弹飞−>O(1)查询,O(n)修改仅记录每个点几步弹飞->O(1)查询,O(n)修改 仅记录每个点跳的下一个位置(就是裸暴力……)−>O(n)查询,O(1)修改仅记录每个点跳的下一个位置(就是裸暴力……)原创 2017-08-12 17:33:11 · 281 阅读 · 0 评论 -
2145: 悄悄话
题目链接题目大意:确定一个密钥,破译密文题解:Orz hzwer我的收获:……#include<iostream>#include<cstring>#include<cstdio>#include<cstdlib>#include<algorithm>#include<cmath>using namespace std;int T=10,l,ans,mx;string a[26];原创 2017-08-09 21:29:31 · 431 阅读 · 0 评论 -
2134: 单选错位
1原创 2017-08-02 23:27:22 · 324 阅读 · 0 评论 -
2005: [Noi2010]能量采集
题目链接题目大意:求∑x=1n∑y=1mgcd(x,y)∑x=1n∑y=1mgcd(x,y)\sum\limits_{x=1}^{n} \sum\limits_{y=1}^{m} gcd(x,y)题解:点(x,y)与(0,0)所连线段上不包含原点有的点为gcd(x,y) 反演或简单容斥都可以我的收获:2333#include <iostream> #include...原创 2018-03-28 20:23:47 · 390 阅读 · 0 评论