自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

OhohOh

Think Different.

  • 博客(151)
  • 资源 (1)
  • 收藏
  • 关注

原创 搬家,搬到cnblog了

现地址 http://www.cnblogs.com/WArobot/

2017-03-03 17:02:47 619

原创 计蒜客 宝藏 (状压DP)

----**链接 : **[Here!](https://nanti.jisuanke.com/t/18546)**思路 : **- 状压DP. 开始想直接爆搜, T掉了, 然后就采用了状压DP的方法来做.- 定义$f[S]$为集合$S$的最小代价, $dis[i]$则记录第$i$个点的"深度", 所以说边$E{[i, j]}$ 的工程代价就为$dis[i]

2017-11-23 10:45:59 483 1

原创 HDU 2035 人见人爱A^B(同余基本性质)

原题链接:Here!思路:可以利用同余的基本性质 ab ≡ (a%m)(b%m) (mod m) ,也非常好证明。  设 a = k1*m + c1 , b = k2*m + c2 ( k1,k2 为非负整数 )ab = k1*k2*m*m + m*(k1*c2+k2*c1) + c1*c2ab mod m = c1*c2a mod m = c1 , b mod m =

2017-01-31 19:28:54 707

原创 HDU 3579 Hello Kiki(模线性方程组)

原题链接:Here!思路:典型模线性方程组的题,需要注意的是如果最后解为0,需要输出M[]的lcm。这是为什么呢?如果解为0,也就是说当 0 ≡ Ai ( mod Mi ) (1 代码:#includeusing namespace std;typedef long long LL; LL gcd(LL a,LL b){ return b==0?a:gcd(b,a%

2017-01-31 19:18:21 377

原创 PKU 2115 C Looooops(拓展欧几里德)

原题链接:Here!题意:Description:对于循环语句:for(variable=A;variable!=B;variable+=C)statement;已知所有的数均要mod 2^k(即0Input:输入数据有多组,每组数据占一行,有四个整数A,B,C,k(0对于每组输入数据,输出“statement”执行的次数,如果为无限次,那么直接输出“FOREVER

2017-01-29 22:02:08 416

原创 NEFU 84 五指山(拓展欧几里德)

原题链接:Here!思路:已知四个非负整数,n(2 设t次翻滚能到达y点,即有方程 x + t*d = y + c*n ,(c为非负整数)整理得:t*d - c*n = y - x,方程有解的条件是gcd(d,n)|(y-x)代码:#includeusing namespace std;typedef long long LL;LL exgcd(LL a,LL

2017-01-29 21:30:53 418

原创 PKU 1061 青蛙的约会(经典拓展欧几里德)

原题链接:Here!思路:设两只青蛙跳t步后相遇,可得到一个式子 x + t*m - y - t*n = p*L (P是正整数),整理一下可得:(n-m)*t + L*p = (x-y) ,明显的用拓展欧几里德。代码:#includeusing namespace std;typedef long long LL;LL exgcd(LL a,LL b,LL &x,LL

2017-01-26 23:15:37 364

原创 PKU 2891 Strange Way to Express Integers(线性同余方程组)

原题链接:Here!题目大意:选择k个不同的整数a1,a2,a3......ak,对于某个整数m分别对ai求余对应整数ri,如果适当选择a1,a2,...,ak,那么整数m可由整数对组合(ai,ri)唯一确定。现在给出所有整数对(ai,ri),输出符合要求的最小非负整数m的值,如果无解输出-1思路:典型的解线性同余方程组的题,HDU 1573与之相同(链接里有证明过程)

2017-01-26 17:53:11 414

原创 2017 于成龙剧终 杂谈

感慨颇多,于成龙刚正不阿,浩然正气真是令我灵魂都跟着震颤起来。只解沙场为国死,何须马革裹尸还。何为传奇?此为传奇。只望我能坚持自己,心存浩然正气,昂首天地间。

2017-01-24 23:33:18 634

原创 HDU 1573 X的问题(模线性方程组)

原题链接:Here!思路:稍后补代码:#includeusing namespace std;int N,m;int exgcd(int a,int b,int &x,int &y){ if(b==0){ x = 1; y = 0; return a; } int d = exgcd(b,a%b,x,y); int tmp = x; x = y;

2017-01-24 23:21:09 453

原创 蓝桥杯 算法训练 区间k大数查询(水)

思路:截取闭区间 [ l , r ] 中的数,排个序直接输出代码:#includeusing namespace std;int n,m,l,r,k;int num[2000],tmp[2000];void transform(){ int s=0; for(int i=l;i<=r;i++) tmp[s++]=num[i];}int main(){ while(

2017-01-23 22:54:03 497

原创 蓝桥杯 算法训练 最短路(最短路模板)

思路:最短路模板题,出错了一次,没有全部清空导致出错。代码:#includeusing namespace std;const int maxn = 200000+10;int n,m;int d[maxn];vector > E[maxn];void init(){ for(int i=0;i<maxn;i++) d[i]=1e9; for(int i=0;i

2017-01-23 22:39:24 1069

原创 蓝桥杯 算法训练 出现次数最多的整数(水)

思路:两个游标直接扫描代码:#includeusing namespace std;const int maxn = 100000;int s,n;int num[maxn];int main(){ while(cin>>n){ int max_num = -1; memset(num,0,sizeof(num)); for(int i=0;i<n;i++)

2017-01-23 22:13:07 329

原创 HDU 1021 Fibonacci Again(数论简单题)

原题链接:Here!思路:n≡F[n-1]+F[n-2] ( mod 3 ) ,故预选处理F[ ] 再判断。(a+b) mod c = ((a mod c) + (b mod c)) mod c   代码:#includeusing namespace std;const int maxn = 1000000+10;int fb[maxn];void init(){

2017-01-22 21:07:13 419

原创 PKU 2769 Reduced ID Numbers(简单数论)

原题链接:Here!思路:题目大意是找到一个最小的m使得G个SIN mod m后的值各不相同,暴力代码:#include#includeusing namespace std;int m,N,G,SIN[310];bool mark[100001];int main(){ cin>>N; while(N--){ cin>>G; for(int i=0

2017-01-22 20:30:45 326

原创 HDU 1576 A/B (数论逆元)

原题链接:Here!思路:求 (A/B)%9973 的值 ,给出n(n=A%9973)(我们给定的A必能被B整除,且gcd(B,9973) = 1)。n=A%9973  -> n=A-A/9973*9973因为B|A ,设A/B=x ,A=Bx,则 Bx-9973y=n又因gcd(B,9973)=1=Bx1+9973y1 ,方程两边同乘n可得, Bnx1+9973ny1=n

2017-01-21 18:32:54 380

原创 2017 寒假练习题 Part 1

HDU 2516 取石子游戏原题链接:Here!思路:第一人败的情况是 n=2,3,5,8,13...... 是个斐波那契数列 代码:/* Note: n=2 第一人败 * n=3 第一人败 * n=4 第二人败 n=5 第一人败 * n=6 第二人败 n=7 第二人败 n=8 第一人败 * n=9 第二人败 n=10 第二人败

2017-01-20 21:08:22 565

原创 HDU 1427 速算24点(DFS) *

原题链接:思路:这是get的别人的代码,写的很棒,用next_permutation()取代了括号的作用,精髓,经典代码:/* Note: 代码写的非常(๑•̀ㅂ•́)و✧ 用next_permutation()代替括号的作用 */#includeusing namespace std;//#define testint res[4];bool o

2017-01-19 20:54:33 351

原创 二分查找求上下界

/** Note:* 二分法也是分治思想的一种体现* 分治三步:1.划分问题 2.递归求解 3.合并问题* 虽然递归能够实现二分,但一般把二分写成非递归形式* 二分思想很重要** 接下来三个模块求解 1.不重复value 2.重复value求上界 3.重复value求下界**/#includeu

2016-12-14 22:11:44 1161

原创 HDU 1874 畅通工程续( 水spfa & 水dijkstr )

原题链接:Here!    分析:并没有什么好说的,裸    注意:          1. 关键是 spfa 和 dijkstra 写法很简洁,get from qscqesze          2. G++ 4.4以上支持bits/stdc++.h !          3. 邻接表写法有趣         4. spfa O(me) m为所有顶点进队平均次数

2016-12-13 20:16:08 422

原创 2016/12/12 杂谈

漫漫长夜何时眠......深夜一发很销魂呢 明日还有考试等待老夫,有趣的很,希望不要炸掉...    我遇Code就如同飞蛾遇火,要知火是飞蛾眼中心中的光

2016-12-12 23:52:36 261

原创 HDU 1394 Minimum Inversion Number( 归并排序 & 线段树 )

漫漫长夜无心入眠,来一发原题链接:Here!分析:    一个由0..n-1组成的序列,每次可以把队首的元素移到队尾,求形成的n个序列中最小逆序对数目    首先求出来序列没有进行全排列时的逆序数为cnt     假设现在把首数字放到最后,那么逆序数的变化是什么样的?    将第一个数t[0]放到t[n-1]后,t[0]后无任何数字所以逆序数增加了0 但是拿走t[0]后,原

2016-12-12 23:48:13 322

原创 Hdu 4911 Inversion(裸归并排序)

分析:你可以交换k次相邻的两个数,所以呢,最后逆序对数-k就ok,特判cnt-k代码:#include#includeusing namespace std;//#define testconst int maxn = 100000+10;long long cnt;void marge_sort(int *A,int x,int y,int *T){ if(y-

2016-12-12 21:06:09 324

原创 HDU 1379 DNA Sorting (水归并排序)

原题链接:Here!分析:使用归并排序查找逆序数然后设置一个游标从0开始扫,扫到输出就ok/* Note: 处理逆序数对问题 使用归并排序的思想 */ #include#include#includeusing namespace std;//#define testint cnt ;const int inf=0x3f3f3f;char str[10

2016-12-12 19:53:07 436

原创 HDU 1175 连连看 (BFS处理转折点)

第二个处理附带转折问题的题目分析:    1.开始时就直接判断 如果起点处和目标点处数字不同,或则起点或终点有一个是0,直接no。     2.因为限定了最小转向次数,所以采用bfs单向搜,hdu 1728与之及其类似代码:/* Note: 分析: 1.单方向BFS判断转折点,两次转折转折次数为3,从-1开始为2

2016-12-11 22:44:54 465

原创 HDU 2208 唉,可爱的小朋友 (DFS枚举)

分析:一开始以为是匹配,GG,没认真读题......每个组至少有一个小球可以玩,而且每个组内不会有两个小朋友,相互不喜欢。如果A喜欢和B一起玩,则B也喜欢和A一起玩。因为数据很小 n,m,k代码:#include #include #include using namespace std; //#define test int n,m; int ro

2016-12-11 22:42:30 355

原创 HDU 1254 推箱子(双重BFS)

不错的搜索题 ^^分析:需要判断人和箱子的相对位置,两个bfs嵌套,挪动一次箱子就判断一次人是否能到达使箱子挪动的地方。两次bfs,因为数据量不大,所以应该可以过很棒的搜索题需要注意的地方:   1.人不能穿过箱子,所以每次在处理人的行进路径时需要把地图G中箱子处转换成1   2.箱子不一定沿着到达目标点的最短路径前进   3.需要开4维数组记录人和箱子的相对状态sta

2016-12-11 22:40:43 445

原创 2016/12/10 Test Note

Problem ID:1000 18岁生日  HDU 1201分析:需要注意的是什么时候+1天 1.出生在闰年且在3月前 2.18岁时是闰年在2月后  什么时候没有生日 如果生日是闰年2月29日 18岁无法过生日 代码:#include#includebool Leap_year(int year){ // bool 布尔型判断闰年 bool类型只有两个值true &

2016-12-11 20:56:42 404

原创 HDU 1043 Eight(A* + 奇偶剪枝 + 康拓展开)

题目链接:Here!题意描述:经典八数码问题,给定八数码的初始序列,求经过u、r、l、d四种操作到达1 2 3 4 5 6 7 8 x的状态,打印出操作序列?代码:/* Note: 例题:HDU 1043 Eight 方法二:A*(h(x):曼哈顿距离)+奇偶剪枝(逆序数)+康拓展开 分析: 1、首先移动x时序列(把x除外)的逆序数奇偶性不会发

2016-12-09 19:00:47 400

原创 HDU 1010 Tempter of the Bone(DFS+奇偶剪枝)

原题链接:Here!题意:有一个N x  M 大小的maze,从起点 ' S ' 出发到达出口 ' D ' ,每走一步需要1s,能否恰好在T秒时到达出口。分析:一开始普通DFS,T了,所以需要奇偶剪枝,还有一个有意思的剪枝是 ① N*M - wall 奇偶剪枝link:Here!例如:恰好到达 4 4 5S X X X.  X X X.  .  .  D

2016-12-08 12:10:06 370

原创 HDU 1043 Eight(反向BFS打表+康托展开)

原题链接:Here!分析:求经过若干次四个操作 ' r ' , ' l ' , ' u ' , ' d ' 到状态1 2 3 4 5 6 7 8 x,输出操作顺序。因为最终状态一定,所以采用反向BFS打表,记录路径即可。CODE:/* Note: 因为题目要求是任意状态求是否能到一个"完美状态",因为任意状态不确定性和完美状态的确定性,所以不妨 反向BFS+打表 抠脚

2016-12-07 21:39:43 310

原创 康托展开 & 康托逆展开

1.康托展开  康托展开的公式是 X=an*(n-1)!+an-1*(n-2)!+...+ai*(i-1)!+...+a2*1!+a1*0!其中,ai为当前未出现的元素中是排在第几个(从0开始)。  举个例子来说明一下。例如,有一个数组 s = ["A", "B", "C", "D"],它的一个排列 s1 = ["D", "B", "A", "C"],现在要把 s1 映射成 X。n

2016-12-07 14:39:20 458

原创 HDU 2062 Subset sequence

原题链接:Here!  一开始想直接用递归做,因为以前做过采用递归求全排列的问题,但是这样会走进一个误区,这个题目要求按字典序排,所以不能按照全排列的思想去解决。字典序这个要求比较有意思,从字典序中可以找到一些规律,用这些规律来解决掉这个问题。假设拿 n=3 m=10来说它的子集按照字典序排列会有如下顺序:{1}{1,2}{1,2,3} {1,3}{1,3,2}

2016-12-05 19:56:22 2617 2

原创 鱼我所欲也

鱼,我所欲也;熊掌,亦我所欲也。二者不可得兼,舍鱼而取熊掌者也。生,亦我所欲也;义,亦我所欲也。二者不可得兼,舍生而取义者也。生亦我所欲,所欲有甚于生者,故不为苟得也;死亦我所恶,所恶有甚于死者,故患有所不辟也。如使人之所欲莫甚于生,则凡可以得生者何不用也?使人之所恶莫甚于死者,则凡可以避患者何不为也?由是则生而有不用也,由是则可以避患而有不为也。是故所欲有甚于生者,所恶有甚于死者。非独贤者有是心

2016-12-05 17:04:19 388

转载 二十岁出头的时候上,你一无所有,你拥有一切。

转载自http://blog.csdn.net/lianqi15571/article/details/8282447 (一)嘴上说说的人生那年我在离家的时候一个劲地往自己的硬盘里塞《灌篮高手》,我妈一副嗤之以鼻的表情看着我,似乎是在说:“这么大的人了居然还这么喜欢看动漫。”我不知道怎么回应她,只好耸耸肩,因为我实在无法对我亲爱的娘亲说明这部动漫对我的意义。

2016-12-05 13:20:24 383

原创 HDU 2066 一个人的旅行(Dijkstra)

原题链接:Here!分析:和草儿家相邻的城市的有S个,草儿想去的地方有D个。所以这个问题起点集合是S{},终点集合是D{}。我们只需要计算出每一个起点到所有终点的最短距离,然后选出其中最小的距离就是答案。注意:输入时会出现重边,需要对重边进行处理。CODE:#include#include#includeusing namespace std;const int

2016-12-03 15:04:04 438

转载 C++ string类的用法

转载自:http://www.cnblogs.com/xFreedom/archive/2011/05/16/2048037.html要想使用标准C++中string类,必须要包含#include // 注意是,不是,带.h的是C语言中的头文件using  std::string;using  std::wstring;或using namespac

2016-12-02 23:57:11 258

原创 HDU 1130 How Many Trees?(Catalan + 大数)

原题链接:Here!分析:Catalan数的应用+大数,友情链接,里面有分析 .Here!CODE:#include #include #include#include #include using namespace std; #define MAXN 9999#define MAXSIZE 10#define DLEN 4class BigNum{

2016-11-30 22:21:53 481

原创 HDU 1134 Game of Connections(Catalan + 大数)

原题链接:Here!看完就懂了!(应用5)CODE:使用了大数模板#include #include #include#include #include using namespace std; #define MAXN 9999#define MAXSIZE 10#define DLEN 4class BigNum{ private:

2016-11-30 18:09:19 389

原创 HDU 1023 Train Problem II(Catalan + 大数)

原题链接:Here!模板来袭:Here!#include #include #include #include #include using namespace std; #define MAXN 9999 #define MAXSIZE 10 #define DLEN 4 class BigNum { private

2016-11-30 17:29:32 400

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除