自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Charles_Zaqdt的博客

Show me the code.

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

原创 HDU 2516 取石子游戏(斐波那契博弈)

         以这道题为例,斐波那契博弈就是有一堆石子,两个人轮流取,每次最少取一个,最多取上一次取的数目的两倍,第一次不能取完,最后取完石子的人获胜,那么如果这堆石子的数目不是斐波那契数列里的数,第一个取得人必赢。AC代码:#include <iostream>#include <cstdio>#include <cmath>#define ll l...

2018-02-25 22:54:34 248

原创 CodeForces 940B Our Tanya is Crying Out Loud

题意:输入四个数n,k,a,b,然后有一个x刚开始等于n,然后有两种情况,如果x-=1的话需要花费a,如果x/=k的话需要花费b,问当x减到1的时候最少需要花费多少。AC代码:#include <iostream>#include <cstdio>#define MIN(a,b) a>b?b:a#define MAX(a,b) a>b?a:b#defin...

2018-02-25 11:24:26 429

原创 CodeForces 940A Points on the line

       题意:给两个数n和d,然后输入n个数,问最少要删掉几个数才能让剩下的n个数的任意两个数相差不大于dAC代码:#include <iostream>#include <cstdio>#include <algorithm>#define MAXN 105#define MAX(a,b) a>b?a:busing namespace s...

2018-02-25 10:56:27 320

原创 HDU 4496 D-City(反向并查集)

       题意是有n个点,m条边,刚开始这些边都是连着的,然后按顺序逐一破坏这些边,然后让你输出每破坏一次图中还剩几个集合,刚开始肯定是有一个集合的,最后都破坏完了就是n个集合了。       讲一下思路,我们可以反向思考,从正面破坏,可以从倒着连接实现,开一个ans数组标记每次连接两个点后的集合数目,比如刚开始有n个点,就让ans[i] = n,然后每次把两个集合连起来的时候就让n--,然后...

2018-02-23 23:21:21 245

原创 POJ 2236 Wireless Network(并查集裸题)

       题意是发生了地震把电脑都震坏了,然后要修复这些电脑,先输入n,d,表示有编号为1-n的这么多电脑,d表示两台电脑的距离不大于d时可以连接,然后输入n行x,y,表示编号为1-n的电脑的坐标,然后输入'O'或'S',当输入'O'以后再输入m,表示编号为m的电脑修好了,输入'S'后在输入a,b,表示询问a和b能否成功连接,能的话输出SUCCESS,否则FAIL。       思路是当输入为...

2018-02-23 22:47:18 197

原创 POJ 1611 The Suspects(并查集)

       题意是爆发了SARS病毒,现在有许多个小组,只要小组里有一个人感染了病毒,那么这个小组都会有感染的嫌疑,所以让求的就是有感染嫌疑的人数,先输入n,m,表示有n个人,m个小组,然后输入每个小组ans个人,然后输入那ans个人的编号。所以我们可以先输入ans,再输入第一个人a,然后再循环输入ans-1次b,让a和b合并就好了。AC代码:#include <iostream>...

2018-02-23 15:25:14 194

原创 POJ 1308 Is It A Tree?

       题意是判断这是不是一棵树,条件就是不能有环,而且只能有一个根节点,和小希的迷宫哪道题差不多,可以看下判断有没有环的详解传送门,这道题呢需要加一个改动的地方就是因为不知道这个树的大小,可能不是从1开始的,也不知道是从多少结束的,所以刚开始要把最大值和最小值记录下来。AC代码:#include <iostream>#include <cstdio>using ...

2018-02-22 18:38:27 199

原创 HDU 1272 小希的迷宫(并查集判断有无成环)

        这是一道判断有没有成环的并查集的题,就是每两个点要有唯一的路可到达。不太懂并查集的可以看一下这篇博客传送门。       说一下这道题的思路,首先要判断有没有成环的话,要先想清楚什么时候会成环。比如以这个图为例,我们输入1和2,1和3,2和4,3和4,当输入完2和4的时候现在pre数组里有pre[2]=1,pre[3]=1,pre[4]=1,当再输入3和4的时候,会发现3和4的根节...

2018-02-22 18:15:14 370

原创 HDU 1213 How Many Tables(并查集讲解)

       这是我写的第一道并查集的题,也应该是一道最简单的入门题了,所以就以这道题说下并查集,其实就是找关系,比如说这道题的题意就是有n个人聚餐,然后他们不一定都互相认识,如果a认识b,b认识c,那么就让他们仨坐一桌,再如果c认识d,d认识e,那么就让这三个人另外坐一桌,所以就是有关系的就坐一桌,然后问需要多少张桌子(忽略每张桌子能坐多少人)。        那么并查集就分为并和查两个过程, ...

2018-02-22 16:19:37 648 1

原创 CodeForces 242C King's Path(bfs+map)

      题意就是走地图,输入起点终点,然后输入某行的某些点可以走,然后问你最后能不能走到终点,能的话输出最少步数。仔细读一下题会发现地图的范围太大了,用二维数组肯定是存不下的,所以我们需要换种方法去存图,可以用结构体去存,这里我用的是map和pair,具体过程看代码吧。AC代码:#include <iostream>#include <cstdio>#include...

2018-02-21 16:39:03 249

原创 POJ 3984 迷宫问题(bfs+pair)

       求最短路问题,但是需要打印路径,那么就需要把路径存下来,可以用结构体来存,这里我用的是pair。最后输出路径的时候是一个递归过程,理解不了的可以手动模拟一下,样例也不长。AC代码:#include <iostream>#include <cstdio>#include <cstring>#include <queue>using...

2018-02-20 23:54:20 217

原创 CodeForces 938A Word Correction

      题意是输入长度为n的字符串,如果'a''e''i''o''u''y'这些字母中有两个是相连的,就删除后面的那一个,然后输出最后的结果。我的思路就是开一个标记数组,先把这六个字母标记出来,然后再遍历一遍,把相连的字母的后一个再另外标记一下,然后输出结果。后来看了别人的代码,感觉更简练,值得学习。AC代码:#include <iostream>#include <cst...

2018-02-19 18:29:38 256

原创 CodeForces 932A Palindromic Supersequence

       题意是让找回文串,输入的如果是回文串,可以直接输出,如果不是回文串,就把它改成回文串,输出的回文串没有特定的要求,所以我们可以想到直接把输入的字符串倒着再输出一遍就好了,比如输入abc,输出abccba。写法可以直接先输出一遍,然后再倒着输出一遍,当然也可以用reverse函数(字符串反转)。AC代码:#include <iostream>#include <al...

2018-02-19 15:28:02 356

原创 CodeForces 934B A Prosperous Lot(水题)

      题意就是从0-9这10个阿拉伯数字里找圈,比如0,4,6,8,9这五个数都是有圈的,其中8有两个圈,这道题就是输入一个数n,让你输出一个含有n个圈的数,当然这个数是随机的,当时没有理解题意,纠结了半天。还有就是如果没有这个数的话就输出-1,因为题目给了范围,说输出的数要小于10的18次方,所以说当n等于36的时候你最少要输出18个8,所以大于36的数就超过了数据范围,所以判断一下就好了...

2018-02-17 22:19:53 336

原创 CodeForces 934A A Compatible Pair

题意        有两个小朋友挑灯笼(亮度),第一个小朋友可能比较抠门,不想挑出来最亮的,所以他会藏一个灯笼,然而第二个小朋友就比较老实了,把最亮的挑出来,然后问他们两个挑出来的灯笼亮度相乘的最大值是多少。思路       暴力大法好,但是当时做完过了以后瞬间被hack,这道题坑点还是挺多的,首先对于英语渣的(比如我),理解题意就是一道坎,还有数据范围很大,所以不开long long就会爆,所以...

2018-02-17 22:07:52 389

原创 UVA 11624 Fire!(双点bfs)

       这道题就是问一个人能否逃出地图,当然不是那种简单的走地图,还有一堆火(划重点)。说下思路,这道题坑点还是比较多的,首先火源不只一处,可以有多处,那么我们就要把每处火都记录下来,然后bfs搜索前让火源全部入队,还有就是不需要逃出地图,只要跑到边界就ok。(说是双点bfs,其实就是把火和人都塞进队列里乱搜一通AC代码:#include <iostream>#include ...

2018-02-14 23:25:28 251

原创 POJ 3126 Prime Path(bfs)

       简单的bfs搜索AC代码:#include <iostream>#include <cstdio>#include <cstring>#include <queue>#include <cmath>using namespace std;const int MAXN = 10000;struct Node{ ...

2018-02-14 16:47:38 194

原创 POJ 1321 棋盘问题(dfs)

       讲一下大概思路,因为题目上要求棋子不能在同一行或同一列种出现,所以我们可以按行、列来进行搜索,一行一行的搜索,然后标记搜索到的那一列,然后再往下继续搜索。结合代码看吧。AC代码:#include <iostream>#include <cstring>#include <cstdio>using namespace std;const in...

2018-02-14 16:34:01 199

原创 HDU 2191 悼念512汶川大地震遇难同胞——珍惜现在,感恩生活(多重背包裸题)

            一道多重背包的裸题,想看详解的可以看这篇博客传送门(Coins)AC代码:#include <iostream>#include <cstring>#define MAX(a,b) a>b?a:b#define MAXN 100000#define INF 0x3f3f3f3fusing namespace std;int dp[M...

2018-02-10 19:55:06 228

原创 HDU 2844 Coins (多重背包+二进制优化)

       首先这是一道多重背包的裸题,题意在代码中的注释里有。多重背包就是所给的物品是有限的(任意个),我们则可以把多重背包的问题转换成01背包和完全背包来求解。首先我们先把01背包和多重背包的过程封装成函数,需要用的时候传参过去就好了,然后我来解释一下什么时候用01背包,什么时候用完全背包。我们先不考虑价值,假如说A的重量是3,有10个,B的重量是5,有2个,而你的背包的最大重量为15。对于...

2018-02-10 19:08:32 577

原创 NYOJ 311 完全背包(恰好装满)

就直接上代码吧,至于判断恰好装满问题可以看下这篇博客传送门(Piggy-Bank)需要注意的是直接调用max函数会TLE,所以以后还是不要懒省事的直接调用max函数吧。AC代码:#include <iostream>#include <cstring>#include <cstdio>#define MAX(a,b) a>b?a:busing na...

2018-02-10 18:52:21 778

原创 POJ 2603 HDU 1963 Investment(完全背包)

        这有一篇完全背包的详解,也加了判断是否恰好装满的状态传送门(Piggy-Bank)       题意在代码注释中有,算是完全背包的模板题吧,但是需要注意一点,因为题目中说了所有数据都是1000的倍数,所以我们可以对数据都进行缩小1000倍来进行计算。AC代码:#include <iostream>#include <cstring>#include &l...

2018-02-10 18:47:52 320

原创 HDU 1114 Piggy-Bank(完全背包+恰好装满)

       就以这道题来简单讲解一下完全背包问题,首先完全背包和01背包的区别在于01背包每样物品只有一个,用完了就不能再用了,而完全背包的物品是有无限个的,所以完全背包又衍生出能不能把背包恰好装满的问题。能否恰好装满问题对dp数组初始化的时候做点改变就行了。        下面是完全背包的核心代码: for(int i=0;i<p;i++){ for(int j=w[i...

2018-02-10 16:56:27 1094

原创 NYOJ 860 又见01背包(思维)

       刚一看这道题以为是01背包的裸题,TLE了一次后发现这是一道拐了个弯的裸题,题中给的物品重量范围太大了,所以我们可以换种思路,把最大价值求出来,然后在dp中用价值去存重量,然后价值从大到小遍历找出第一个不大于题中给的重量,然后输出价值即可。AC代码:#include <iostream>#include <cstring>using namespace s...

2018-02-08 22:31:18 296

原创 HDU 2546 饭卡(01背包+预处理)

       这是一道01背包问题,但是需要预处理一下,因为当你的钱不够5块钱的时候,你什么都买不了,所以直接输出钱数,当你的钱大于5块钱的时候,你可以先拿出来5块钱,留着最后去买最贵的菜,现在你剩下m-5块钱,排个序把最贵的留在最后,然后就用01背包把这m-5尽量装满(遍历1~n-1种菜,因为n是最贵的菜要留给最后),然后再用那剩下的5块钱去买最贵的菜,最后就是最优解m-dp[m-5]-dp[n...

2018-02-08 22:21:08 210

原创 HDU 1171 Big Event in HDU(01背包)

       题意在代码注释中有,思路就是先记录所有价值的总和sum,既然要求两个学院分得的器材价值尽量接近,那么取总和的一半ans,让其中一个学院尽量接近ans,那么另一个学院也会尽量接近ans,所以就两个学院尽量相同了。还有就是器材可能不唯一,所以需要再加一个for循环把这个器材用完。AC代码:#include <iostream>#include <cstring>...

2018-02-08 22:07:11 230

原创 HDU 2955 Robberies(01背包+思维)

       这是一道关于小数的01背包问题,题意代码注释中有,如果按着题的思路来写,会发现那个概率是小数,在转移方程里没法实现,所以我们需要换个方向思考了。我们可以按成功逃跑的概率来算,每个w数组里存成功逃跑的概率,然后让总价值作为背包容量,然后在dp中用价值去存逃跑的概率,最后从价值最大(背包容量)到小遍历(因为价值越大逃跑成功率越低),直到第一次出现逃跑成功的概率小于等于题目给的逃跑成功概率...

2018-02-08 21:53:06 427

原创 POJ 3624 Charm Bracelet(01背包模板题)

       又是一道01背包裸题。AC代码:#include <iostream>#include <cstring>#include <cstdio>#define MAX(a,b) a>b?a:busing namespace std;const int MAXN = 1000005;int dp[MAXN];int w[MAXN];...

2018-02-08 21:11:03 212

原创 HDU 2602 Bone Collector(01背包模板题)

       一道01背包的裸题,不带拐弯的裸题...看代码吧AC代码:#include <iostream>#include <cstring>using namespace std;const int MAXN = 1005; //数组不要开太小,不然会WAint dp[MAXN];int val[MAXN]; //存价值int v[...

2018-02-08 21:07:29 213

原创 CodeForces 919B Perfect Number(水题)

2018-02-08 20:58:10 420

原创 CodeForces 919A Supermarket(水题)

     英语渣表示不想说话...AC代码:#include <iostream>#include <cstdio>using namespace std;int main(){ int n,m; double price; while(scanf("%d%d",&n,&m)){ double a,b; price = 0...

2018-02-08 20:54:02 341

原创 HDU 3342 Legal or Not(拓扑排序)

      这是一道拓扑排序的题,题意下面代码注释部分有,所以就说一下思路,只用看最后的关系是不是合法的,判断方法就是入度为0的个数等于n就说明没有成环否则就有环存在。可以定义一个sum来计数,每入队一次就说明有一个入度为0的点,所以sum加1,最后sum和n比较,相同就是YES,否则NO。如果不会用优先队列实现的可以去看这篇博客确定比赛名次AC代码:#include <iostream&g...

2018-02-08 20:48:03 228

原创 HDU 1285 确定比赛名次(拓扑排序&&优先队列优化)

       拓扑排序最主要的就是依靠入度进行排序,至于入度是什么,这是一个传送门 点开看看就好了。以这道题为例,裁判不知道队伍的成绩,只知道胜负,自然获胜的越多就越靠前,那么我们需要开一个二维数组来记录谁打败了谁,代码中我用了w表示win,l表示lose,那么vis[w][l]就表示w打败了l,把这个标记为1,说明他们两个比过了,然后我们还需要一个数组来记录入度,既然l输了那么就让dep[l]+...

2018-02-08 19:32:23 355

原创 CodeForces 198B Jumping on Walls(bfs || dfs)

       这道题纠结了快两天,刚开始因为地图的坐标纠结了好久,题意在下面代码中有,下面就说一下思路,我刚开始用bfs做的,卡在了不知道怎么比较当前位置和水位线的位置,一直不知道怎么记录水平面的位置,然后问了许多dalao,知道了在结构体中加了个step,用于记录走的步数,因为每走一步水位上升一格,所以步数step就相当于水位上升的高度,然后只需要比较step和你当前位置y就行了(只要step&...

2018-02-08 15:47:57 449 1

原创 Hiho Coder 1038 01背包(模板)

       01背包的原型就是有N件物品和一个容量为V的背包。放入第i件物品耗费的空间是Ci,得到的价值是Wi,求将哪些物品装入背包可使获得的价值总和最大。而这道题的题意也就是这个意思,01背包的特点就是每种物品仅有一件,可以选择放或者不放。下面是01背包的核心代码:for(int i = 0; i < n; i++){ for(int j = V; j >= c[i]; j--...

2018-02-06 23:49:13 345

原创 NYOJ 21 三个水杯(bfs模拟)

这道题是一道bfs的题,主要是怎样把倒水的过程模拟出来,一共三个杯子,六种情况(A->B,A->C,B->A,B->C,C->A,C->B),所以我们可以用两个for循环模拟这六种情况。而在倒水的过程中又有两种情况,一是倒不满,二是倒完有剩余,这两种情况就需要判断一下了。还有就是标记数组开三维数组,用于标记每个杯子的状态。不太好想,建议结合代码手动模拟一下。AC代码:#includ

2018-02-06 23:26:21 343

原创 Hdu 2612 Find a Way(双点bfs)

题意代码最后的注释里有,这道题就是对两个人分别进行bfs搜索,然后记录下这两个人到每一家KFC的步数,最后遍历地图求出最少的步数,思路很简单,但实现起来可能不是很好想。AC代码:#include #include #include #include using namespace std;#define MIN(a,b) a>b?b:aconst int MAX = 0

2018-02-06 22:53:38 264

原创 POJ 3287 Catch That Cow(bfs)

看懂意思就很简单了,给你一个数,每次只能加一或者减一或者乘2,问最少几次才能变成另一个数,就是一个简单的bfs过程,看代码吧。AC代码:#include #include #include #include using namespace std;const int MAXN = 100005;struct Node{ int x,step;}Now,Next,S

2018-02-06 19:45:06 400

原创 NYOJ 353 3D Dungeon(三维bfs)

这道题是三维地图去找最短路,所以类比着二维地图的广搜过程做就行了,只用在搜索方向上做点改变。AC代码:#include #include #include #include using namespace std;struct Node{ int x,y,z,step;}Next,Now,S,E;char MAP[35][35][35];int vis[35

2018-02-06 19:12:22 200

原创 NYOJ 92 图像有用区域(bfs+预处理)

这道题的意思就是在这个地图里,如果一些正数没有被0包围住就把这些正数改成0,而被0围起来的正数不变,然后输出这个地图,这就是一道bfs题,只是需要加一个预处理,因为在边缘的那些数不好判断,所以不如在地图外面加一层正数,然后从第一个数开始进行bfs,把相连的正数都改为0就好了,最后剩下的就是被0包围起来的搜索不到的正数了。AC代码:#include #include #i

2018-02-06 18:58:34 310

2018第九届蓝桥杯

第九届蓝桥杯大赛JAVA和C/C++真题,附上题解连接https://blog.csdn.net/charles_zaqdt/article/details/79786821

2018-04-13

空空如也

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

TA关注的人

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