- 博客(29)
- 收藏
- 关注
原创 【带权并查集】【HDU3038】【How Many Answers Are Wrong】d s
题目大意给你个N个区间和关系,但是有几个存在着矛盾,问存在矛盾的有多少个。/*用sum[i]表示【i , find(i)】的区间和.....这个可以用并查集维护好的...而【L,R】区间等于 sum【L】-sum【R+1】所以我们需要知道的事R+1..1。若u,v+1 的 祖先节点一样 那么可以计算出【u,v】的区间和了 t=find(u)=find(v) 由
2015-04-30 11:16:26 482
原创 【第12届浙江省赛记录】
从校内选拔赛到最终比赛一路都是磕磕撞撞过来的。。。校内选拔赛因为只能选7只队伍参加比赛。校内选拔都是压力重重。。。杭电实力还是强,省赛的最终的6金1银就可以看出。。4场比赛的总题数来选取7只队伍,,,前3场都是在第8,第9徘徊,,但也没落后太多题数。。最终一场浙大月赛手感出奇的好,还是以一个可以的名次和题数结束。。感谢王鑫和张炜最后A的积分题,一道翻身的题目..也是我们队伍HD
2015-04-25 22:26:17 2338 10
原创 【双向广搜+逆序数优化】【HDU1043】【八数码】
HDU上的八数码 数据强的一B首先:双向广搜先处理正向搜索,再处理反向搜索,直至中途相遇visit 和 队列都是独立的。 可以用一个过程来完成这2个操作,减少代码量。(一般还要个深度数组)优化效率很强逆序数优化在忽略空格的情况,会发现 空格无论怎么变,1-8的排列的逆序数始终要为偶数,才能有解(空格无视)而且证明得出:如果满足逆序条件,必定有
2015-04-13 21:55:05 1417
原创 【康托展开】
展开X=a[n]*(n-1)!+a[n-1]*(n-2)!+...+a[i]*(i-1)!+...+a[1]*0! 逆展开 例 {1,2,3,4,5}的全排列,并且已经从小到大排序完毕 (1)找出第96个数 首先用96-1得到95 用95去除4! 得到3余23 用23去除3! 得到3余5 用5去除2!得到2余1
2015-04-13 11:12:20 737
原创 【邻接表字符串Hash】【HDU1800】Flying to the Mars
题意:给你N个数字,带前导0,问出现最多的数字个数思路:读入,清楚前导0,Hash。用邻接表字符串Hash有一下几点注意string,不要memset,否则地址也没了,涉及到stl的东西,少用memset,类似还有vector;用assign截断字符串也是很黄很暴力的直接assign(a.begin(),a.end) 即可#include #i
2015-04-09 15:18:16 462
原创 【巧妙思维】【4-6】Problem F
题意:有n个正方体,边长为A[i] 当A[k]-A[p]问有多少种放法;一开始被数据范围吓到了 ,以为是n^3算法,答案是nlogn从小到大排序,一个一个插入,因为从小到大,所以插入一个元素时,只要管插入位置前面的元素大小关系,不用管后面的(相减一定直接乘法原理即可(1+k1)(1+k2).....k1即排序后 ,K[i]表示排序后 前面与A[i]相
2015-04-09 10:45:17 426
原创 【线段树】【4-6组队赛】Problem H
Problem Description#include #include using namespace std;int n,a[110000],b[110000],c[110000],d[110000];int main(){ while(cin>>n) { for(int i=0;i>a[i];
2015-04-09 10:26:22 383
原创 【插队问题-线段树-思维巧妙】【poj2828】Buy Tickets
可耻的看了题解巧妙的思维逆序插入,pos 代表的意义为前面要有pos个空格才OK;证明:仔细思考一下就觉得是正确的,但是要想到这种方式还是要很聪明,空格是前面的几个数字所形成的,所以要特地留出来,因为这几个空格是既定的事实线段树实现线段的意义:当前线段留的空格数,满足区间和性质代码如下:#include #include #include #inc
2015-04-08 14:23:59 458
原创 【线段树成段更新成段查询模板】【POJ3468】A Simple Problem with Integerst
题目大意:2个操作A.区间a b 增加 cB 查询a b;注意事项:1.记住要清除标记 2.查询时要下放标记,但没必要向上更新线段:自带的,不用建模区间和性质:sum;/*WA 1次 以为不要LONG LONG*/#include #include #include
2015-04-08 12:58:29 409
原创 【线段树成段更新-模板】【HDU1698】Just a Hook
题意 Q个操作,将l,r 的值改为w问最后1,n的sum 为多少成段更新(通常这对初学者来说是一道坎),需要用到延迟标记(或者说懒惰标记),简单来说就是每次更新的时候不要更新到底,用延迟标记使得更新延迟到下次需要更新or询问到的时候题意:O(-1)思路:O(-1)线段树功能:update:成段替换 (由于只query一次总区间,所以可以直接输出1结点的信息)
2015-04-08 11:49:30 505
原创 【线段树求最靠前】【HDU2795】【Billboard】
题意:有一个H*W的广告牌,当插入一个广告时(1*Wi),问最靠前的插入方式是什么新生赛有个类似的题目,可惜当时居然没水过去。果断用线段树做 以H为线段 建树,存[l,r]中最大的宽度,因为区间最大值满足区间和性质。所以线段树几个要素如下:线段:H区间和性质:最大值代码:#include #include #include #inc
2015-04-08 11:16:43 457
原创 【线段树求逆序数】【HDU1394】Minimum Inversion Number
题目大意:随机给你全排列中的一个,但不断的把第一个数丢到最后去,重复N次,形成了N个排列,问你这N个排列中逆序数最小为多少做法:逆序数裸的是N^2 利用线段树可以降到NlogN具体方法是插入一个数,查询之前比他大的数有多少个,即query(A[i]+1,N,1,N,1),利用线段树保存区间和即可;至于不断把一个数丢到最后,可以用O(1)的时间来处理
2015-04-08 10:16:00 489
原创 【单点更新,区间查询,线段树】【HDU1166】【敌兵布阵】
线段树要捡回来学了才知道以前抄的模板就是杭电传奇学长写的,写起来更有激情了;一点注意:单点更新完后记得pushup(),向上更新信息以下是对线段树的理解线段树的节点代表一段线段,节点编号没有任何意义。叶子节点代表点,一般也代表具体的数值了,是线段树的主要注意部分;#include #include #include #include #i
2015-04-07 21:14:20 369
原创 【网络流】【HDU3081】Marriage Match II
得出正解前的思考:1.我该如何处理朋友关系?消去朋友关系 ,直接由朋友关系得出情人关系的连线?2.我该如何保证每次源点给1-N 平均分配1点流?又可耻的看了题解,答案让我醍醐灌顶
2015-04-05 21:57:57 477
原创 【拆点费用流】【HDU1853】【 Cyclic Tour】
题意: 有N个城市,M条单向路,Tom想环游全部城市,每次至少环游2个城市,每个城市只能被环游一次。由于每条单向路都有长度,要求游遍全部城市的最小长度。 // 给定一个有向图,必须用若干个环来覆盖整个图,要求这些覆盖的环的权值最小。XD 第一次知道网络流拆点做法 但还没完全理解透,多做几题感悟感悟 ,先发一下别人题解 ,代码当然自己写
2015-04-05 20:37:41 615
原创 【最小费用最大流】【HDU1533】【Going Home】
题意 给你一个类似这样的图...H.......H.......H....mmmHmmmm...H.......H.......H....问所有H移动到所有m上花费最少的步数以所有H 到 所有m 连一条边,边的权重为2者距离,这样其实就是一个二分图带权匹配 也可以用KM算法来做网络流做法
2015-04-05 19:23:58 2613
原创 【最大流,二分图匹配】【hdu2063】【过山车】
题意:裸的求二分图匹配建立一个源点 连向一边所有的点 容量为1;另外一边点都连向汇点 容量为1;二分图的边容量也为1源点汇点求一遍最大流即可#include #include #include #include #include #include #include #include #include #define oo 0x13131313
2015-04-05 18:48:01 451
原创 【最小费用最大流模板】【Uva10806+Spring Team PK】Dijkstra, Dijkstra,
题意:从1到n 再从n到1 不经过重复的边 ,(如果是点就是旅行商问题了),问最短路建立一个超级源S S到1连一条费用为0,容量为2的边,求费用流即可如果流否则 输出结果模板来自Kuangbing 如下:#include #include #include #include #include #include #include
2015-04-05 16:39:11 1328
原创 【最大流之sap】【HDU1532】模板题
与上题一样 纯属测试模板来自kuangbin的模板#include #include #include #include #include #include #include #include #include #define oo 0x13131313using namespace std;const int MAXN=200+5;const int MA
2015-04-05 15:30:37 798
原创 【最大流之EdmondsKarp算法】【HDU1532】模板题
题意:裸的最大流,什么是最大流,参考别的博客运用复杂度最高的EK算法 O(M*N),模板来自紫书#include #include #include #include #include #include #include #include #include #include #define INF 0x3f3f3f3f#define oo 0x1313
2015-04-05 14:37:33 523
原创 【矩阵乘法经典应用】【ZOJ3497】【Mistwa】
题意:给定一个有向图(最多25个节点,每个节点的出度最多为4),给定起点和终点,然后从起点开始走,走到终点就停止,否则一直往下走,问能不能P步到达终点。也就是说从起点出发,走一条长度为P的路径,路径中间点不能经过终点(但可以反复经过其他点)。如果从起点出发P步后,不能到达终点,就是False,如果可以到达终点也可以到其他别的点,就是Maybe,如果P步后只能到达终点(到别的点没有长度为P的路径),
2015-04-03 21:59:54 442
原创 【矩阵专题】
http://acm.hdu.edu.cn/webcontest/contest_show.php?cid=69301000:题意:裸的斐波拉契,裸的不能再裸 n代码:#include #include #include #include #include #include #include #include #include #define oo 0
2015-04-03 18:38:57 444
原创 【斐波拉契+数论+同余】【ZOJ3707】Calculate Prime S
题目大意:S[n] 表示 集合{1,2,3,4,5.......n} 不存在连续元素的子集个数Prime S 表示S[n]与之前的所有S[i]互质;问 找到大于第K个PrimeS 能整除X 的第一个S[n]并且 输出(S[n]/X)%M1.斐波拉契阶段很容易写出S[n]的各个值发现是斐波拉契数列2 3 5 8 13 21 342.斐波拉契性质
2015-04-03 17:45:19 1772
原创 对拍BAT
:loopmakedata.exeK.exeKture.exefc a.out b.outif %errorlevel%==0 goto looppause
2015-04-03 12:03:49 3432 2
原创 【枚举+贪心】【ZOJ3715】【Kindergarten Electiond】
题目大意:n 个人 在选取班长 1号十分想当班长,他已经知道其他人选择了谁,但他可以贿赂其他人改选他,问贿赂的最小值ps.他自己也要投一个人要处理一个问题是,他自己投谁其实这个问题在这种局面下在不同算法有不同处理方法,先不要考虑一开始我想的是纯贪心:选2个最小的比较票数最多中最小的 谁小选哪个直到1号票数最多(但不是唯一)这个时候再考虑 他
2015-04-03 12:02:28 1210
原创 计算(a/b)%c
如果b与c互素,则(a/b)%c=a*b^(phi(c)-1)%c如果b与c不互素,则(a/b)%c=(a%bc)/b对于b与c互素和不互素都有(a/b)%c=(a%bc)/b成立
2015-04-02 20:12:31 5535 3
原创 斐波拉契数列性质
fibonacci数列的性质:1.gcd(fib(n),fib(m))=fib(gcd(n,m))证明:可以通过反证法先证fibonacci数列的任意相邻两项一定互素,然后可证n>m时gcd(fib(n),fib(m))=gcd(fib(n-m),fib(m)),递归可求gcd(fib(n),fib(m))=gcd(fib(k),fib(l)),最后k=l,不然继续递归。K
2015-04-02 20:10:26 610
原创 【类克鲁斯卡尔做法+枚举最小边】【HDU1598】【find the most comfortable road】
题意: 给你一个图,有边权,K个询问:u到v 的路径中 边权最大值-边权最小值的最小值是多少http://acm.hdu.edu.cn/showproblem.php?pid=1598题解(非自己想出):把边排序 枚举最小边,然后类似克洛斯卡尔,不断加边 更新ANS值(F[i][j]) 复杂度Q*E^2 如果Q变大 可以选择 E*E*N 预处理所有点
2015-04-01 12:04:10 486
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人