![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
经典问题
Jiahe Xu
为何要去攀登珠穆朗玛峰,因为她就在那里啊.
展开
-
wikioi3119高精度开根
#include #include #include #include using namespace std;int l;int work(int k,char *s,int I){ char c, *d=s ; if(k>0) { for(l=0;d[l];d[l++]-=10) { d[l++]-=原创 2014-09-06 15:20:48 · 1042 阅读 · 0 评论 -
bzoj1237 wikioi2430 [SCOI2008]配对 dp
如果更改的位置超过3位那么一定不是最优解。不信自己举例子。原创 2014-08-22 19:25:33 · 1222 阅读 · 0 评论 -
bzoj1015: [JSOI2008]星球大战starwar
逆序建图,把答案存入一个原创 2014-06-13 00:55:46 · 725 阅读 · 0 评论 -
bzoj1193: [HNOI2006]马步距离
bfs打表,在范围之外一直走斜线原创 2014-07-10 14:35:18 · 602 阅读 · 0 评论 -
bzoj2330 [SCOI2011]糖果 差分约束
差分约束系统。这道题应该是一道比较裸的差分约束系统。按照题意建图:1、如果A和B一样多 -> 连边(A,B,0),(B,A,0)2、如果A小于B -> 连边(A,B,1)3、如果A大于等于B -> 连边(B,A,0)4、如果A大于B -> 连边(B,A,1)5、如果A小于等于B -> (A,B,0)其中第2种情况和第4种情况要特判原创 2014-07-17 15:06:51 · 1841 阅读 · 0 评论 -
wikioi3286 noip2013 火柴排队 归并求逆序对
样例1010 1 5 2 7 4 9 3 6 8 7 5 1 8 10 4 6 2 3 9 大小原创 2014-05-02 18:28:40 · 1061 阅读 · 0 评论 -
usaco nuggets 01背包
/*ID: xujiahe1PROG: nuggetsLANG: C++*/#include #include #include #include #include using namespace std;int save[11000],n;bool dp[110000];int gcd(int x,int y){ if(x==0) return y;原创 2014-08-24 19:57:43 · 592 阅读 · 0 评论 -
hdu1506 Largest Rectangle
对于每一块木板,Area=height[i]*(j-k+1) 其中,jxk,height[x]>=height[i];找j,k成为关键,一般方法肯定超时,利用动态规划,如果它左边高度大于等于它本身,那么它左边的左边界一定满足这个性质,再从这个边界的左边迭代下去原创 2014-07-15 20:01:18 · 433 阅读 · 0 评论 -
poj2409Let it Bead Polay定理
题意:给出一个长度为m的项链,每个珠子可以用n种颜色涂色。翻转和旋转后相同的算作一种。有多少种不同的项链?思路:(1)对于Burnside引理,G为所有置换集合,|G|为所有置换个数,gi为第i种置换,D(gi)为在第i种置换下保持不动的元素个数。对于Polay定理,G为所有置换集合,|G|为所有置换个数,gi为第i种置换,n为颜色的种类,c(gi)为第i种原创 2014-07-08 08:56:58 · 579 阅读 · 0 评论 -
poj1330 倍增LCA
#include #include #include #include #include #include using namespace std;#define maxn 11000#define deg 20int fa[maxn][deg],n,num,m,in[maxn<<2],ceng[maxn<<2];int first[maxn<<2],next[maxn<<2]原创 2014-08-26 16:35:17 · 500 阅读 · 0 评论 -
wikioi2845 排序的代价 Polay定理
群论题,涨姿势啊涨姿势,牛掰原创 2014-07-06 18:07:54 · 1001 阅读 · 0 评论 -
hdu1055 贪心
贪心好题。1、初始时将序列中的time[i]都置为1,w[i]置为c[i];2、查找最大的w[i], 返回其位置;3、将该位置的c[]与它的父节点c[]合并(合并过程就是C_i / T_i,C_i = c[该节点] + c[父节点],T_i = time[该节点]+time[父节点])得到新的父节点w[](w[父节点] = C_i / T_i),如果有节点与pos相原创 2014-08-02 20:45:55 · 531 阅读 · 0 评论 -
bzoj1922: [Sdoi2010]大陆争霸 分层图最短路
最短路问题,d1表示到达()原创 2014-07-04 11:42:40 · 1817 阅读 · 0 评论 -
bzoj1045: [HAOI2008] 糖果传递 贪心
贪心,找中位数,白书原题。原创 2014-07-10 20:59:57 · 703 阅读 · 0 评论 -
bzoj2662: [BeiJing wc2012]冻结 分层图最短路
与2763相似,只是使用加速的时候距离变了一下。原创 2014-07-09 15:23:55 · 1026 阅读 · 0 评论 -
bzoj1880: [Sdoi2009]Elaxia的路线 wikioi2309 SPFA
从四个点开始各扫一遍spfa()原创 2014-07-08 23:36:20 · 719 阅读 · 0 评论 -
bzoj1016: [JSOI2008]最小生成树计数 MST+DFS
经典搜索,在求最短路的同时可以维护一个原创 2014-06-13 01:02:32 · 619 阅读 · 0 评论 -
bzoj2753: [SCOI2012]滑雪与时间胶囊 MST
M的数据范围是[1,2000000],神坑1。原创 2014-07-09 22:26:30 · 1196 阅读 · 0 评论 -
bzoj1018: [SHOI2008]堵塞的交通traffic 线段树区间合并
线段树经典题目。判断点的连通性原创 2014-07-05 22:07:31 · 663 阅读 · 0 评论 -
bzoj1491: [NOI2007]社交网络 FLOYD
经典的floyd ,w[I][J]表示从i到j有几条路,原创 2014-07-04 18:17:35 · 1224 阅读 · 0 评论 -
poj3172 搜索01背包
#include #include #include #include #include using namespace std;long long w[1100],c,ans,sum[1100];int n;void dfs(int order,long long left){ if(left<=0) return; if(order==1)原创 2014-08-18 09:53:21 · 729 阅读 · 0 评论 -
bzoj3553: [Shoi2014]三叉神经树 树链剖分
此题的完成,代表近期的树链剖分就告一段落,全力进入联赛复习。原创 2014-09-13 00:20:23 · 1353 阅读 · 0 评论 -
CF475D. CGCDSSQ
同时打两场比赛果然是作死,原创 2014-10-06 09:52:00 · 646 阅读 · 0 评论 -
hdu1599 find the mincost route floyd求最小环
floyd求最小环#include#include#include#includeusing namespace std;int n,e,d[105][105],data[105][105],mina;void floyd(){ int i,j,k,mina=1000000; for(k=1;k<=n;k++) { for(i=1;i<k;原创 2014-07-19 15:27:27 · 413 阅读 · 0 评论 -
bzoj1977: [BeiJing2010组队]次小生成树 Tree
由于要求严格次小原创 2014-11-02 08:11:31 · 646 阅读 · 0 评论 -
codevs 1631组合数 乘法逆元求组合数
由于组合数有时候m和n比较大,这样就无法一开始打表求得,原创 2014-10-17 18:30:54 · 818 阅读 · 0 评论 -
bzoj1003 [ZJOI2006]物流运输trans
本题为dp和最短路的结合,cost(X,Y)原创 2014-06-05 20:11:26 · 1592 阅读 · 0 评论 -
codevs1282 约瑟夫问题 线段树
直接用线段树维护区间和。last记录还剩多少人。st记录原创 2014-11-06 11:14:50 · 606 阅读 · 0 评论 -
codevs3012 线段覆盖 4 dp好题
第一次看到这个题目首先想到的就是dp。然后发现原创 2014-11-07 09:18:11 · 806 阅读 · 0 评论 -
bzoj3143: [Hnoi2013]游走 高斯消元求概率
设p[i]为点i经过次数的期望.d[i]为点i的度数这个对于1特殊地,p[1]=1+sigma(p[j]/d[j]) (i,j之间有连边) 而虽然n点会被经过好多次,但是n点对它连接的边是不会有贡献的,所以p[n]=0。由于是连通图,必然有唯一解.高斯消元解即可.对于每一条边(v,u)它的期望经过次数为p[v]/d[i]+p[u]/d[v原创 2014-12-05 00:47:50 · 719 阅读 · 0 评论 -
bzoj2038: [2009国家集训队]小Z的袜子(hose) 莫队算法(分块)
莫队算法能使用莫队算法的前提是这样的如果我们已知[l,r]的答案,能在O(1)时间得到[l+1,r]的答案以及[l,r-1]的答案,即可使用莫队算法。时间复杂度为O(n^1.5)。如果那个只能在logn的时间求,则时间复杂度是O(n^1.5*log n)。说白了,就是用一个“神奇的数据结构”维护插入、删除操作这道题的话我们很容易用“数组”来实现那个“神奇的数据结构”,做到O原创 2014-12-08 22:25:49 · 583 阅读 · 0 评论 -
bzoj1026: [SCOI2009]windy数 数位dp
第一次接触数位系统,感觉还是很神奇的。f[I][J]代表一个i位数顶位为j的windy数有多少个。我们可以用work(n)来计算n以内所有windy数的个数。那么答案就是work(b)-work(a-1);由于没有位数限制work(n)中要把所有位数小的windy数个数加上去。在枚举每一位的时候如果不是个位的话,当前枚举到得值要比n这个数的这一位小,为了避免原创 2015-01-04 21:05:47 · 546 阅读 · 0 评论 -
hdu3397 Sequence operation 线段树区间更新&&bzoj1858: [Scoi2010]序列操作
题目大意:给一个01串,给3种操作,分别是将一个区间置0,置1和取反。给2种查询,分别是查询某个区间1的个数和查询某个区间最长连续1的个数。题目分析:线段树好题。对区间的3种操作中,置0和置1操作很简单,直接将区间lazy标记,强制覆盖。如果是对区间取反的话,就要考虑区间原来的状态了。如果原来该区间已经取反了,再取反相当于还原,如果该区间没有标记,标记上取反直接返回,如果有标记,则原创 2014-08-14 19:34:45 · 630 阅读 · 0 评论 -
自定义set比较函数
#include #include #include using namespace std;struct node{ int a,b; node(int aa, int bb) {a=(aa),b=(bb);}};struct cmp{ bool operator()(node s1,node s2) { if( s1.a原创 2016-08-15 20:47:38 · 682 阅读 · 0 评论 -
cf678E. Another Sith Tournament
题目大意:有n个选手,给你每个选手战胜另一个选手的概率。赛事为擂台战,选手1很特殊,他可以调换选手的出场顺序,使得自己的胜率最大,求1的胜率。n题解:如果由初始状态往后递推明显是不行的,因为1可以改变出场顺序状态递推太过困难(选手比赛并不是随机的),我们可以从最终状态开始倒着递推,即确定1必胜,其余状态倒着递推,最后得到都是在1必胜的前提下,dp[I][J](i为擂主,选手状态为j)的概率。原创 2016-08-17 10:28:08 · 512 阅读 · 0 评论 -
hdu5862Counting Intersections 扫描线+线段树
题目大意:给你n个平行于坐标轴的线段,求其交点数,n题解:首先将线段离散化。 然后将所有线段按照横坐标的顺序,按照先插入再查找再删除的顺序进行操作。对于横线 如果是左端点,则将其纵坐标加1,右端点则减1,对于竖线直接求和就行了。(线段树点要开多#include #include #include #include #include using namespace std;#原创 2016-08-19 15:17:24 · 410 阅读 · 0 评论 -
bzoj1150: [CTSC2007]数据备份Backup 贪心
这是一道很好的题目,正常人都想不出做法。我还记得题解是说:(1)想到动规,但是T到死。。。(2)转化成网络流,还是T的不行(3)咦,好像是贪心欸,做出来了(你在卖萌!) 其实算法很简单,首先我们知道必须找相邻的两个进行配对,但是不是直接找最小,而是每次要找最短的一段(后面会解释什么叫"段"),于是可以用堆来维护。具体做法是找出当前最短的段X,原创 2015-03-07 11:53:59 · 635 阅读 · 0 评论 -
wikioi1033 蚯蚓的游戏问题
第一次写网络流的拆点问题,本题可以原创 2014-06-09 19:13:39 · 760 阅读 · 0 评论 -
poj3468A Simple Problem with Integers Splay版
练练splay的lazy操作。惊奇的发现在select的时候pushdown效率比一边更新一边pushdown高。。。。#include #include #include #include #include using namespace std;#define maxn 110000typedef long long sint;sint sum[maxn];int lazy[原创 2014-12-23 22:05:13 · 501 阅读 · 0 评论 -
hdu1575Tr A
纯矩阵乘法。#include #include #include #include #include using namespace std;#define mod 9973int n,k;struct matrix{ int p[15][15];}ans,res,org;matrix operator * (matrix a,matrix b){ matr原创 2014-07-24 15:06:35 · 429 阅读 · 0 评论