
kuangbin专题一
xyry
ACM入门中……
展开
-
POJ1321-棋盘问题
题目链接:POJ1321数据很水,入门题目。AC代码:深搜+回溯 要注意回溯的时候,标记要置为0。#include#includeconst int maxn=10;char mp[maxn][maxn];int n,k,ans;bool vis[maxn];void dfs(int row,int num){ if(num==k){ ans+原创 2017-12-08 23:47:01 · 378 阅读 · 0 评论 -
[kuangbin带你飞]专题一 简单搜索 刷题总结
人生第一次刷完一个专题。虽然是一个入门专题,我觉得对我来说意义蛮大。希望继续保持,慢慢来,比较快。总的来说难度不大,水题偏多,但是也不可小觑,有很多细节如果没有注意到就会各种报错WA,MLE,TLE,RE,CE之类的。题解稍后贴上。原创 2017-12-08 23:31:11 · 555 阅读 · 0 评论 -
HDU1495-非常可乐
题目链接:hdu1495如果做过前面那个倒水的题目(POJ3414),那么这道题就简化成了,3个杯子互相倒水,只用输出最少的次数,而不用输出路径。简化版倒水题。记得用一个vis[maxn][maxn][maxn]数组来剪枝,免得T。对了,还有一个默认的条件,平分指的是总水量平分,所以奇数不用考虑了。ACcode:#include#include#include#i原创 2017-12-09 13:54:45 · 368 阅读 · 0 评论 -
HDU1241-Oil Deposits
题目链接:HDU1241很裸的题目,注意连成一块的条件,对角相连也算,所以总共有8个方向。这题也是找连通分量,和前面那个fire game 的第一步差不多。AC:#include#includeusing namespace std;const int maxn=110;char mp[maxn][maxn];bool vis[maxn][maxn];int t原创 2017-12-09 13:46:49 · 329 阅读 · 0 评论 -
UVA11624-Fire!
题目链接:UVA11624也是比较坑的一道题目首先读题,发现Input 最后一句话,there will be exactly one J in each test case;这句话的意思说,每个测试点有且只有一个Joe,那么与其相对的Fire,没有特别注明,也就是说每个测试点不确定有几个fire,这是第一个坑点。第二个,思路,先把所有的起火点跑一遍,得到每个点的最早起火时间图原创 2017-12-09 13:30:55 · 363 阅读 · 0 评论 -
POJ3984-迷宫问题
题目链接:POJ3984很裸的题目,如果做过前面那个倒水的题目,那么这题很快就能AC了给定起点和终点,就是要记录路径,很简单,上下左右四个方向,UDLR ,每次进队列的时候选择一个方向加入字符串,最后返回字符串即可。AC:#include#include#include#include#includeusing namespace std;const int max原创 2017-12-09 13:40:14 · 365 阅读 · 0 评论 -
FZU2150-Fire Game
题目链接:FZU2150题目背景挺无聊的……吐槽一下坑,FZU不支持C++11 巨坑我大概CE了3小时。用迭代器的时候解引用 得用*(it).x 不能用it->x 看了一下午才发现是这里CE先扫一遍看有几个连通分量,如果连通分量大于2,直接输出-1如果连通分量有两个,那么对于每一个连通分量分别取起点当作点火的位置,然后暴力即可。如果连通分量只有一个,那么从这个连通分量原创 2017-12-09 13:21:10 · 413 阅读 · 0 评论 -
POJ3414-Pots
题目链接:POJ3414这题目和前面几道搜索题目的区别在于要记录路径,这要怎么办呢?第一点,我们考虑到只有两个杯子,每个杯子只有3个操作,也就是总共只有6个操作,那么我们分别命名6个操作为1-2-3-4-5-6;然后定义一个结构体,每次存入A B杯子的容量的同时,把相应的操作加入string 字符串,如果满足要求,返回相应的字符串再根据一开始的定义输出即可。第二点,在定原创 2017-12-09 10:54:33 · 476 阅读 · 0 评论 -
POJ3087-Shuffle'm Up
题目链接:POJ3087思路,就是模拟,要注意的细节,每次用字符串的时候要记得清空。记录初始s12,如果找不到答案,第二次遍历s12的时候退出循环。AC代码:#include#include#include#includeusing namespace std;int T,n,kase;string s1,s2,s,t,e;void bfs(){ que原创 2017-12-09 10:43:53 · 366 阅读 · 0 评论 -
POJ3126-Prime Path
题目链接:POJ3126思路,先打一个素数表,然后BFS的时候,把4位数每一位单独考虑,看看4位数是否为质数,是的话就加入队列。AC代码:#include#include#includeusing namespace std;const int maxn=10005;bool f[maxn];bool vis[maxn];int n,d1,d2,d3,d4,res;s原创 2017-12-09 10:05:06 · 399 阅读 · 0 评论 -
POJ1426-Find The Multiple
题目链接:POJ1426题目数据超水。写了一个普适点的还超时了,写最暴力的还过了,这题没啥意思。AC代码:#include#include#include#include#includeusing namespace std;int n;const int maxn=220;char z[]="0";char o[]="1";struct node{ ch原创 2017-12-09 09:52:26 · 390 阅读 · 0 评论 -
POJ3279-Fliptile
题目链接:POJ3279思路很重要。第一点,N最大只有15 ,考虑到第一排的翻转情况确定之后,整个棋盘的翻转情况也就确定了。最多遍历2^15种。第二点,对于每一排的1,只有其下面的翻转能将其变为0,而不影响同行其他棋子的翻转情况。第三点,坐标系的建立要统一,x,y,m,n, x指的是row 那么y指的是col ,都统一用一个坐标系不容易错。这题目的思路值得借鉴,思考。不看他人原创 2017-12-09 00:02:16 · 318 阅读 · 0 评论 -
POJ3278-Catch That Cow
题目链接:POJ3278一个细节。int 类型的函数要写return 0;不写的话会错好多遍,比如我……对于n>k由于只有一种走法,所以直接n-k就好了,不然会T,这种情况要特判一下。AC代码:#include#include#includeusing namespace std;const int maxn=1e5+10;bool vis[maxn];int n,k;原创 2017-12-08 23:55:24 · 321 阅读 · 0 评论 -
POJ2251-Dungeon Master
题目链接:POJ2251三维搜索,也就是方向变成了6个。6个方向BFS即可AC代码:#include#include#includeusing namespace std;const int maxn=35;char mp[maxn][maxn][maxn];int l,r,c;int sl,sr,sc,el,er,ec,ans;bool vis[maxn][maxn]原创 2017-12-08 23:49:15 · 332 阅读 · 0 评论 -
HDU2612-Find a way
题目链接:HDU2612这题目有个坑点很类似前面那个fire(UVA11624)。先说思路,我一开始记录下每个KFC的位置,然后对每个KFC,跑Y和M的bfs 求最小时间 然后T了我看了看网上的题解,正解是用Y和M 跑整个图,记录下跑每个点的时间。然后对于每个KFC直接算时间就好了但是这要考虑一个特殊情况,特判,当前KFC两者必须都能够走到,(WA了好多次)ACcode:#原创 2017-12-10 16:04:53 · 405 阅读 · 0 评论