1751-2000
Mmh2000
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
1996: [Hnoi2010]chorus 合唱队
题目链接题目大意:给定一个元素两两不相等的目标序列,每次按照给定方式将一个元素加入到序列当中,问得到目标序列的方案有几种题解:没有规律,考虑dp一下 因为加入的人需要和上一个人进行比较,那么记录进状态里,用f[i][j][0/1]表示[l,r]区间,最后加入的在f[i][j][0/1]表示[l,r]区间,最后加入的在l/r的方案数转移按照题目中所说 需要注意的是f[i][i][0]和f[i][i原创 2017-10-20 07:32:07 · 494 阅读 · 0 评论 -
1878: [SDOI2009]HH的项链
题目链接题目大意:询问[l,r]中不同元素个数题解:树状数组(比较神),或者莫队我的收获:套路&&莫队第一题达成树状数组以每个数字第一次在区间中出现的点代表所有的点。 记录每个位置i的数字的前一个相同数字出现的位置pre[i],没有前一个相同的pre[i]为0。 思路详见此#include <cmath> #include <cstdio> #include <cstring> #include原创 2017-03-08 21:24:48 · 403 阅读 · 0 评论 -
1756: Vijos1083 小白逛公园
题目链接 题目大意:区间最大子段和,多次询问 题解:维护一些东西 lm从左端点往右能取到的最大值 rm从右节点往左能取到的最大值 ans保存当前区间任取一段的最大值 上传标记的时候比较麻烦,详见代码 询问返回节点,因为这样才能保证查询时信息的合并不出问题 我的收获:…… #include <iostream> #include <cstdio> using...原创 2017-09-07 20:55:52 · 373 阅读 · 0 评论 -
1864: [Zjoi2006]三色二叉树
题目链接题目大意:给出1个表示二叉树的字符串,每个节点可以染红绿蓝三色,1个节点与其子节点不同色,1个节点与其兄弟节点不同色,求最多/最少的绿色节点数目题解:因为序列是递归定义的,可以方便地读入 min和max是相同的,下面考虑minf[i][0]表示i不是绿色的最优解,f[x][0]=0f[i][0]表示i不是绿色的最优解,f[x][0]=0 f[i][1]表示i是绿色的最优解,f[x][1]原创 2017-08-23 20:11:18 · 518 阅读 · 0 评论 -
1803: Spoj1487 Query on a tree III
题目链接题目大意:子树k大题解:dfs序主席树我的收获:主席树吼啊#include <cstdio> #include <algorithm> #include <cstring> using namespace std;#define M 100005 #define MX M*20 #define lson tl[x],tl[y],l,mid #define rson tr[x],tr[y],m原创 2017-09-09 19:37:48 · 287 阅读 · 0 评论 -
1968: [Ahoi2005]COMMON 约数研究
题目链接题目大意:求sum(f(1-n)),其中f(i)表示i的约数个数题解:枚举每个因子对答案的贡献#include <iostream> #include <cstdio> using namespace std; int n;void work() { int ans=0; for(int i=1;i<=n;i++) ans+=n/i; cout<<an原创 2017-03-15 20:55:36 · 387 阅读 · 0 评论 -
1775: [Usaco2009 Dec]Vidgame 电视游戏问题
题目链接题目大意:背包,花若干钱可以买一个组(无收益),买完后可以买组内物品题解:依赖背包 f[i][j]表示前i种平台中第i种不选,用j元的最大产出值f[i][j]表示前i种平台中第i种不选,用j元的最大产出值 g[i][j]表示前i种平台中第i中选,用j元的最大产出值g[i][j]表示前i种平台中第i中选,用j元的最大产出值然后01背包注意赋初始值-INF以去除不可行状态我的收获:……#in原创 2017-09-11 07:08:19 · 662 阅读 · 0 评论 -
1965: [Ahoi2005]SHUFFLE 洗牌
1原创 2017-08-03 08:59:12 · 534 阅读 · 0 评论 -
1925: [Sdoi2010]地精部落
题目链接题目大意:求1–n的排列中的波动子序列(高低起伏)个数题解:f[i][j]表示i结尾长j的波动子序列个数,后面的详见CA爷题解我的收获:Orz…………好神的dp#include <iostream> #include <cstdio> #include <cstring> using namespace std; #define M 5000int n,P,f[2][M];void work原创 2017-04-23 19:03:06 · 411 阅读 · 0 评论 -
1798: [Ahoi2009]Seq 维护序列seq
题目链接题目大意:给出数列,有三种操作:(1)区间乘(2)区间加(3)区间求和题解:刚学的时候写的……当时还是naive啊#include <cstdio> #include <iostream> using namespace std; #define M 100005 #define ls x<<1 #define rs x<<1|1 #define lson l,m,x<<1 #define原创 2017-03-15 20:58:46 · 491 阅读 · 0 评论 -
1835: [ZJOI2010]base 基站选址
题目链接题目大意:n个村庄坐落在一条直线上,第i(i>1)个村庄距离第1个村庄的距离为di,需要在这些村庄中建立不超过k个通讯基站,在第i个村庄建立基站的费用为ci。如果在距离第i个村庄不超过si的范围内建立了一个通讯基站,那么它被覆盖了。如果第i个村庄没有被覆盖,则需要向他们补偿,费用为wi。求最小费用题解:Orz题解我的收获:数据结构优化dp#include <iostream> #includ原创 2017-09-21 08:42:40 · 471 阅读 · 0 评论 -
1912: [Apio2010]patrol 巡逻
1原创 2017-08-16 22:37:05 · 336 阅读 · 0 评论 -
1907: 树的路径覆盖
题目链接题目大意:求树的最小路径覆盖数题解:Tree dp或贪心 Orz题解我的收获:贪心强啊,dp神啊#include <iostream> #include <cstdio> #include <cstring> using namespace std;const int M=300005;int T,n; int t,head[M]; int f[M][2];struct edge{int原创 2017-10-20 07:41:52 · 347 阅读 · 0 评论 -
1826: [JSOI2010]缓存交换
题目链接题目大意:有一个起始状态为空的集合,对集合会进行n次操作 每次操作会在集合中查找元素x,如果集合中没有元素x,那么不开心度就会+1,同时如果集合内元素个数小于m,那么他会把x放入集合中;如果集合内元素等于m,那么他必须删去集合中一个元素,然后再把x放入集合 最小化不开心度题解:贪心,删掉后继位置最大的元素 用堆维护具体实现:若x存在:更新x的nxt 若堆满:弹出 将x加入堆中由于二原创 2017-10-25 20:23:35 · 444 阅读 · 0 评论 -
1797: [Ahoi2009]Mincut 最小割
题目链接 题目大意:给出一个有向图,每条边有流量,给出源点汇点s、t。对于每条边,询问:(1)是否存在一个最小割包含该边(2)是否所有的最小割都包含该边 题解:套路题……知道结论就好了 我的收获:套路++ #include <iostream> #include <cstdio> #include <cstring> #include <algor...原创 2017-12-22 10:54:02 · 338 阅读 · 0 评论 -
1923: [Sdoi2010]外星千足虫
题目链接题目大意:高斯消元解异或方程组,题目保证有解题解:直接上,bitset优化一下我的收获:2333#include <iostream> #include <cstdio> #include <cstdlib> #include <algorithm> #include <cmath> #include <bitset> #include <cstring> using namespace s原创 2018-01-30 09:37:23 · 360 阅读 · 0 评论 -
1935: [Shoi2007]Tree 园丁的烦恼
题目链接题目大意:矩阵上有若干个数点,每次询问子矩阵的权题解:差分后就是二维偏序了…… 离线,x排序,y离散化上树状数组我的收获:2333#include <bits/stdc++.h> using namespace std;#define N 500005 #define MX 2999999int n,m,w,tot; int X[N],Y[N]; int A[N],B[N],C[N],D[原创 2018-02-26 09:50:39 · 280 阅读 · 0 评论 -
1856: [Scoi2010]字符串
题目链接题目大意:给定n个1和m个0,能组成多少种序列,满足对于任意前缀1的个数>=0的个数题解:膜有图的题解我的收获:卡特兰数强啊#include <cstdio> #include <cstring> #include <iostream> #include <algorithm> #define mod 20100403 #define N 2001000 using namespace st原创 2018-03-24 20:31:42 · 335 阅读 · 0 评论 -
1975: [Sdoi2010]魔法猪学院
题目链接题目大意:找出1~k短路题解:x的估价函数f(x)f(x)取x到结束节点的最短路,这个是准确值,因此复杂度有保证 按广搜的方式扩展节点,每次优先扩展估价+实际最小的节点 第i次扩展到目标节点,代表找到了第i短路我的收获:org#include<cstdio> #include<cstring> #include<cstdlib> #include<cmath> #incl原创 2018-03-24 20:38:09 · 264 阅读 · 0 评论 -
1875: [SDOI2009]HH去散步
题目链接题目大意:给定一张无向图,每条路的长度都是1,没有自环,可能有重边,给定起点与终点,求从起点走t步到达终点的方案数。 每一步走的时候要求不能走上一条刚刚走的路题解:为了处理要求,需要用边构造矩阵我的收获:emmm#include<cstdio> #include<cstring> #include<iostream> using namespace std; #define原创 2018-03-24 20:50:00 · 252 阅读 · 0 评论 -
1901: Zju2112 Dynamic Rankings
题目链接题目大意:区间k大,支持单点修改题解:带修主席树模板我的收获:233#include <bits/stdc++.h> using namespace std;#define N 10005int n,m,top,cnt,tot; int v[N],num[N<<1]; int A[N],B[N],K[N],flag[N]; int root[N],L[55],R[55];inline int原创 2018-03-26 19:07:33 · 268 阅读 · 0 评论 -
1880: [Sdoi2009]Elaxia的路线
题目链接题目大意:求无向图中,两对点间最短路的最长公共路径题解:先求出最短路图。然后可以建成DAG跑最长链,题解,因为题目中的公共路径没有限制方向,这里直接枚举点对进行判断就可以了……我的收获:最短路图……get新的判断最短路方法……似乎一种枚举边一种枚举点……#include <iostream> #include <algorithm> #include <cstdio> #include <c原创 2017-07-08 19:43:48 · 339 阅读 · 0 评论 -
1823: [JSOI2010]满汉全席
题目链接题目大意:n个条件,选a||b,判断可行性题解:2-sat我的收获:第一个2-sat……本题只需要求可行性,tarjan后判断一下就好了 Orz#include <iostream> #include <cstdio> #include <algorithm> #include <cstring> using namespace std; const int M=1005;int T,n,原创 2017-01-19 10:34:58 · 691 阅读 · 0 评论 -
1800: [Ahoi2009]fly 飞行棋
题目链接题目大意:给出圆周上的若干个点,已知点与点之间的弧长,找出这些点中的所有不重复矩形。题解:很容易想到O(n^4)的暴力……但有一个显然的性质:圆内接矩形对角线为直径。问题转化为找直径。怎么找呢?直径平分圆的周长 找完直径后,矩形数目即为 C(num,2)=num!/(2!(num-2)!)=(num(num-1))/2#include <cstdio> #include <iostrea原创 2017-01-25 21:46:27 · 948 阅读 · 0 评论 -
1820: [JSOI2010]Express Service 快递服务
题目链接题目大意:三辆车,从1,2,3出发,可以留在原地或者移动,有若干要求,每个需要有一辆车到达指定地点,要求需要严格按照时间先后,求最小花费题解:第1遍没读懂,第二遍觉得是最短路 发现条件后又觉得是网络流……实际上是暴力表示状态+xjb转移原创 2017-03-18 14:37:28 · 504 阅读 · 0 评论 -
1787/1832: [Ahoi2008]Meet 紧急集合
题目链接题目大意:有m个询问,每次回答到x,y,z距离最近的点和距离题解:比较显然的想法是lca。但题目中有三个点,可以考虑暴力乱搞,多种情况取最优解,但这样比较麻烦。可以求出3个点两两组合的3个lca,其中有两个相同,答案即为另一个。画图比较显然我的收获:多种情况取最优的应用//树链剖分求lca,跑得飞快(和倍增比较) #include <iostream> #include <cstdio> #原创 2017-03-18 11:51:19 · 505 阅读 · 0 评论 -
1816: [Cqoi2010]扑克牌
题目链接题目大意:有n种牌,第i种牌的数目为c[i]。另外有m张王牌,每套牌可以使用1张。求最多组成多少套牌题解:二分#include <iostream> #include <cstdio> #include <algorithm> using namespace std; const int M=55; int n,m,mx,w[M];bool ok(int x){ long long原创 2017-03-15 21:02:58 · 430 阅读 · 0 评论 -
1801: [Ahoi2009]chess 中国象棋
题目链接题目大意:在n*m的棋盘上放若干炮使得不互相攻击。有多少种放法?可以放0个、1个。。。。只要不互相攻击就行。。题解:dp大法原创 2017-03-15 20:09:54 · 394 阅读 · 0 评论 -
1876: [SDOI2009]SuperGCD
题目链接题目大意:高精度GCD题解:辗转相除法会有一些小问题,考虑更相减损术 1. GCD(a, b) = k*GCD(a/k, b/k) 其中,k是a和b的一个公因数。 2. GCD(a, b) = GCD(a/k,b) 其中,k仅为a的因数,而非b的因数。 3. GCD(a, b) = GCD(a-b,b) 其中,a大于等于b。 对于1和2,当k=2的时候,有: 如果a,b都是偶数,则原创 2017-04-02 12:04:20 · 423 阅读 · 0 评论 -
1877: [SDOI2009]晨跑
题目链接题目大意:给定有向带权图,路径不能相交(除了起点、终点)。求1-n的路径条数和总费用题解:对于边(u,v),连(u,v,1,val),表示对答案贡献为1,花费val 剩下的按照结点容量建图就行了(1和n的容量为INF,其他点容量为1)我的收获:板子……#include <iostream> #include <cstdio> #include <cstring> #include <que原创 2017-05-21 19:48:12 · 328 阅读 · 0 评论 -
1782: [Usaco2010 Feb]slowdown 慢慢游
题目链接题目大意:有n头牛从树上的一个点到达另一个点,求每头牛经过其他牛的个数题解:当一头牛到达一个点x后,所有终点在以x为根的子树中的牛答案+1,区间修改,单点查询dfs序就好了。Orz hzwer写法我的收获:劲#include<iostream> #include<cstdio> #include<cstring> #define N 100005 using namespace std; i原创 2017-06-09 10:43:46 · 368 阅读 · 0 评论 -
1834: [ZJOI2010]network 网络扩容
题目链接题目大意:给定一张有向图,每条边都有一个容量C和一个扩容费用W。这里扩容费用是指将容量扩大1所需的费用。求: 1、 在不扩容的情况下,1到N的最大流; 2、 将1到N的最大流增加K所需的最小扩容费用。题解: 第一问直接上模板 对于第二问,我们可以设图中原有的边费用为0,在残量网络上继续增广。显然残量网络中有流量的边都是有可以直接流的,并且不需要任何费用。 然后我们对于原图中的每一条边,原创 2017-05-31 20:25:10 · 399 阅读 · 0 评论 -
1833: [ZJOI2010]count 数字计数
题目链接题目大意:给定两个正整数a和b,求在[a,b]中的所有整数中,每个数码(digit)各出现了多少次题解:大力出奇迹 f[x][sum]表示前x位待求数出现sum次……f[x][sum]表示前x位待求数出现sum次……套上数位dp模板 反正数位dp乱搞就可以了,无脑加状态我的收获:强啊#include <iostream> #include <cstdio> #include <cstri原创 2017-09-14 08:08:05 · 351 阅读 · 0 评论 -
1922: [Sdoi2010]大陆争霸
题目链接题目大意:最短路,每个点有一个限制,只有限制点全部到达才能到达这个点题解:对于一个城市i,分开求其到达时间和可进入时间,d[i]取这两个的max我的收获:搞搞搞#include <queue> #include <cstdio> #include <cstring> #include <iostream> using namespace std; #define INF 0x3f3f3f3f原创 2017-07-16 20:06:58 · 333 阅读 · 0 评论 -
1821: [JSOI2010]Group 部落划分 Group
题目链接题目大意: n 个点, 分为k个集合,两个集合的距离为其中距离最近的点的距离, 最大化两个集合间距离的最小值题解:可以二分答案+并查集暴力判断,这样就能过了 这里用了一种比较优美的做法贪心,类似最小生成树,按照边权排序,考虑每一条边,为了保留长边,尽量找短边连接将前n-k条边归入一个集合内部,避免它们参与对答案的贡献,为了保证有k个集合,下一条边只能连接不同集合,答案即为最小生成树的第n-原创 2017-08-02 23:26:15 · 441 阅读 · 0 评论 -
1867: [Noi1999]钉子和小球
题目链接题目大意:给定一个钉子阵,小球从最上方的钉子释放,求到达最底端某个位置的概率题解:高尔顿钉板实验我初中还在学语言的时候就见过这个……这个转移式就naive了 f[i+1][j]+=0.5f[i][j],f[i+1][j+1]+=0.5f[i][j],(i,j)是钉子f[i+1][j]+=0.5f[i][j],f[i+1][j+1]+=0.5f[i][j],(i,j)是钉子 f[i+2][原创 2017-08-26 08:58:20 · 540 阅读 · 0 评论 -
1951: [Sdoi2010]古代猪文
注意此题有个细节 就是欧拉定理中a与p必须互质 而当a=0(即G=p)时gcd(a,p)=p原创 2017-08-27 10:30:26 · 722 阅读 · 0 评论 -
1927: [Sdoi2010]星际竞速
题目链接题目大意:一个图,n个点,对于给出的每条边 u,v,w,表示u和v中编号小的那个到编号大的那个的时间为w。另外有n个值Ai,表示从任何一个点到达i点的时间为Ai。初始时你在n个点之外的一个 点上,我们称其为初始点B。要求从B出发,遍历n个点每个点一次,求最小时间。显然开始你只能使用Ai从B到达n个点中的某个点,因为B到n个点中没有其他的边。题解:有上下界的网络流?题目中有一种从编号小的到编号原创 2017-08-24 14:18:51 · 413 阅读 · 0 评论 -
1854: [Scoi2010]游戏
题目链接题目大意:给定n个武器,每个武器有两个属性,只能使用其中一个,要求选择一些武器 可以造成形如1 2 3 4的伤害 求最大伤害题解:有比较naive的二分图匹配做法:武器->一边点集,属性->一边点集,连边,枚举属性进行匹配,时间玄学神奇的并查集做法我的收获:思想神啊二分图匹配#include <iostream> #include <cstring> #include <cstdio> #i原创 2017-08-23 20:50:05 · 282 阅读 · 0 评论 -
1806: [Ioi2007]Miners 矿工配餐
题目链接题目大意:将一个123序列拆分为两个子序列,定义每个数的贡献值为以这个数结尾的长度最大为3的子串中不同数的数量,求贡献值和的最大值题解:类似状压的思想,f[i][a1][a2][b1][b2]为前i个数分成两组,第一组以a1a2结尾,第二组以b1b2结尾的最大贡献值题解:类似状压的思想,f[i][a1][a2][b1][b2]为前i个数分成两组,第一组以a1 a2结尾,第二组以b1 b2结尾原创 2017-08-23 20:02:22 · 411 阅读 · 0 评论
分享