自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Since_natural_ran

Have a pure heart to overcome everything .

  • 博客(39)
  • 收藏
  • 关注

原创 POJ 百练 2754 八皇后问题

http://bailian.openjudge.cn/practice/2754/题意:虽然是汉语,但是也要好好读题。思路:别人的思路总是轻描淡写,但是我表示很难理解。这道题想了很久,只能说现在稍微了解。1: 用递归去把92中排列方式以从小到大方式计算出。那么每一次都要从小开始寻找。  而很好的是,写递归可以从小开始找,即使某一种不合适八皇后共存也会回溯重新找。

2016-08-30 16:16:29 1320

原创 POJ 1068 (括号模拟)

http://poj.org/problem?id=1068题意:其实这道题很直接,p是每一个)之前有多少(,w是一个()内包括自身有多少个()。思路:直接的模拟:1 还原括号。2:找出w。可以用一个数组0,1来模拟)(。#include#includeint main(){ // freopen("in.txt","r",stdin);

2016-08-28 14:29:22 508

原创 POJ 3250 Bad Hair Day (栈的简单应用)

http://poj.org/problem?id=3250题意:一排全都向右看齐的牛,第 i 头牛可以看到在它右边且比它低的不被比它高的牛所遮挡的牛。问1~n头能看见的和。刚开始我用最基础的方法写,但是超时了,当然poj也不会出这样简单的水题.太天真了。超时代码。#include__int64 a[80005],ans;int main(){ int

2016-08-28 09:47:05 528

原创 POJ 2247 (丑数的产生方法)

所谓丑数,就是不能被2,3,5,7以外的其他素数整除的数。1,2,3,4,5,6,7,8,9,10,12,14,15,16,18是最前面的15个丑数。此处主要是怎么打表:#include#include#includeusing namespace std;int main(){ freopen("in.txt","r",stdin); __int

2016-08-26 15:48:57 778

原创 POJ 1222 (枚举+熄灯问题)

http://poj.org/problem?id=1222题意:5x6个灯输出怎么熄灯才能都是灭的。0是灭,1是亮。思路:首先要确定第一行的灯,随后剩下的灯随之确定,因为如果puzzle[r][c]是亮的,则要按下press[2][j]。怎么确定第一行的灯呢,第一行有2^6种情况,依次枚举即可。要点有三处:   1:对puzzle和press的初始化。

2016-08-25 10:44:10 810 1

原创 百练 2810 完美平方

http://bailian.openjudge.cn/practice/2810/不得不说,这又是一道经典的利用枚举思想的题。想要求出n以内存在a*a*a = b*b*b + c*c*c + d*d*d。  那么可以从a开始依次枚举,但是为了优化 加上 一个 判断条件 if(cube[] 注意for循环中的条件很经典,遍历本身就是从小到大开始,所以不用排序。

2016-08-24 17:35:02 453

原创 POJ 1013 (经典++ 的枚举题,称量找出假硬币)

http://poj.org/problem?id=1013  这是一道把枚举思想用到极致了。题意百度上太多了,不解释。  思路:想要找出哪一个硬币是假的枚举 A 到 L 的每一种情况。每一种情况要枚举是轻还是重。  判断轻重枚举三种条件。   如x是轻的:     1:even的情况是 Left 和 Right 都没有出现x。     2:up  的情况是

2016-08-24 16:56:32 1663

原创 暑假小训练 (一道 不能不会的用结构体搜索题)

http://acm.hust.edu.cn/vjudge/contest/129524#problem/I题意:8x8的象棋,给出开始和结束的点,和一个不能走的点,求出最短路。#include#include#include#includeusing namespace std;int ax,ay,bx,by,cx,cy;int gragh[10][1

2016-08-23 20:38:37 441

原创 POJ 1548 (最长公共子串)

http://poj.org/problem?id=1458题意:求出两个字符串的最长公共子串,子串可以不是连续的,思路:可以用一个二维数组保存s1[ i ] 和s2[ j ]之前的最长子串长度(包括s1[ i ] 和s2[ j ])。那么其实问题显而易见的分成了两种情况s1[ i ] 和s2[ j ]相等和不相等问题自然迎刃而解了。dp的思想,分成子问题来优化。

2016-08-23 09:41:57 356

原创 POJ 1775 (有趣的简单阶乘)

http://poj.org/problem?id=1775题意:问输入一个数是否存在几个数的阶乘和等于它,如9! = 1!+2!+3!。学到的知识是阶乘增长的速度很快:1,1,2,6,24,120,720,5040,40320,362880除了1,1其它的数都比其前边数的和要大。#includeusing namespace std;int

2016-08-23 01:59:50 489

原创 POJ 2386 (简单深搜,求连通区域)

http://poj.org/problem?id=2386题意:下雨后广场出现有雨水的区域,求有多少个。思路:很明显,简单递归。每次找到W就把和它相连的W都改成 " . "就可以了。#include#includeusing namespace std;int n,m;char gragh[105][105];void dfs(int x,int

2016-08-22 23:16:01 479

原创 POJ 1661(中等 dp,跳板游戏)

http://poj.org/problem?id=1661题意:不多讲,求从出发点到底的最短时间。思路:把从一个点到下一个板的问题看成两个雷同的问题,一切尽在代码解释中。#include#include#include#include#define M 1000#define inf 0x3f3f3f3fusing namespace std;int

2016-08-22 20:40:59 304

原创 POJ 2479 (简单dp)

http://poj.org/problem?id=2479题意:给出一串数字,,它的意思是最大连续的子串和。解题思路很简单:左边遍历一次求left[i]最大的和,然后再从右遍历一次找出最大的d[A]就行了。需要注意的是:数组范围;存在负数;temp的使用。#include#include#define Min -9999999using na

2016-08-22 11:05:49 574

原创 POJ (简单 dp ,最长升序子串)

POJ 1533题意:求输入的一串数字的最长升序子串的长度。#include#include#include#define M 1005using namespace std;int s[M];int maxn[M];int main(){ int n; cin>>n; for(int i = 1;i <= n; i++)

2016-08-19 18:08:56 775

原创 POJ 2262 (简单素数判定 ,需要优化)

http://poj.org/problem?id=2262题意:哥德巴赫猜想;一个数哥德巴赫1742年给欧拉的信中哥德巴赫提出了以下猜想:任一大于2的偶数都可写成两个质数之和。题中给出的范围是成立的,所以不用考虑:Goldbach's conjecture is wrong.这道题让我知道了,想问题的

2016-08-19 16:44:52 324

原创 POJ 2739(优化,也可以无敌打表)

http://poj.org/problem?id=2739题意:输入一组数,问连续素数和等于它的有几种情况。#include#includeusing namespace std;int prim[10005];int prime(int n){ if(n == 1) return false; if(n == 2) return tr

2016-08-18 10:50:32 393

原创 POJ 3176 (简单dp)

http://poj.org/problem?id=3176题意:输入n层数字三角形,求从第一层到最后一层最大权值和。其实用递归很简单的解决,但是数据范围是350层,递归确实可以解决,但是会超时。很容易看出来,maxn(i,j)是第i层第j数字到底层的最大权值和,所以要求maxn(i,j)有两种选择a(i,j)+MAX(maxn(i+1,j),maxn(i+1,j+

2016-08-18 09:15:30 476

原创 3299 (入门水题 套公式)

POJ3299题意:给你H,D,T,任意的两个个输出这三个。题目中有公式,不过还是学到了知识。1:log 的用法。2:exp(x)是e的x次方。3:简化问题的思想。#include#include#includeusing namespace std;int main(){ char a; float T,D,H; whil

2016-08-17 16:13:09 296

原创 POJ 3614(最小优先队列 + 贪心算法)

POJ 3614题意:有C头牛 L 种 防晒霜,C头牛有最大和最小的承受防晒范围,L种防晒是有自己的固定值和n瓶,求多少牛可以晒太阳。  说实话:此题优先队列是为贪心而准备的。  贪心?就是从最小的防晒霜开始找,找C头牛范围小的。  想要求出最多的牛晒太阳,当然是从最小的开始遍历。#include#include#include#inclu

2016-08-15 17:34:46 628

原创 POJ 2362(DFS)

POJ2362题意:给定各个长度,问能否组成正方形。DFS:现在看来重要的是思想,像一个问题要分步去思考。  1:正方形边长大于4,总长除以4余数0  2:最大边长不能大于总长除以4  3:查找边长需要从大向小查找,需要排序,且查找到3个满足边长就成功。//#include#includeusing namespace std;int stick

2016-08-15 09:59:11 366

原创 POJ 3087 (简单map + 模拟)

POJ 3087题意:给出洗牌的方式,问几次能洗出要求的牌。洗牌方式就是插入,很简单。用mapvisit 记录是否出现过。值得学习的就是这种想法,用map记录判断是否能洗出这种牌。#include#include#includeusing namespace std;int main(){ int t = 0,text;

2016-08-13 11:27:36 352

原创 POJ 2418 (简单map)

题意:输入字符串,按字典序输出字符串和它所占的百分比。map是一个容器,存入数据的时候默认字典序存入,只是不经常用所以很难控制输入输出。对于getline的解释:   istream&getline ( istream &is , string &str, char delim );里面分别是:输入方式,输入目标,停止标记,来源:http://blog.sina.com.cn/s/

2016-08-13 10:47:15 563

原创 POJ 1338(set, 最小优先队列的简单使用)

题意:很简单,输出第n个丑数。最小优先队列: priority_queue,greater >pq;小的排在前边。set是容器,可以用count(x)查找x的个数。#include#include#include#include#include#include#define M 2000__int64 a[M];int coeff[3] =

2016-08-12 11:02:59 399

原创 POJ 2503(简单map,字符串的处理)

POJ 2503题意:输入英语与外语的字典,问接下来输入的单词是否出现。主要是字符串的处理。#include#include#include#includeusing namespace std;int main(){ freopen("in.txt","r",stdin); char English[15],Foreign[15]; map

2016-08-12 10:20:17 451

原创 POJ 1363 (简单栈)UVA 514

UVA 514POJ 1363太苦逼的一道题,关于输入,关于栈的初始定义。不过这道题应该学会的是分部模拟。车厢进栈有两种情况,一种是进直接出。另一种是进了不出。接着就是判断A,B就行。#include#includeusing namespace std;const int MAXN = 1010;int n,target[MAXN];int main()

2016-08-11 17:26:32 414

原创 POJ 1094(TopoSort)

POJ 1094题意:该题题意明确,就是给定一组字母的大小关系判断他们是否能组成唯一的拓扑序列。是典型的拓扑排序,但输出格式上确有三种形式:     1.该字母序列有序,并依次输出;     2.该序列不能判断是否有序     3.该序列字母次序之间有矛盾,即有环存在。但是注意顺序,必须要先判断环,其次是无序,最后才是有序。#include#include

2016-08-11 10:01:02 332

原创 POJ 2367 (入门拓扑排序 )

POJ 2367题意:知道一个数n, 然后n行,编号1到n, 每行输入几个数,每行以0结尾,输出一种符合要求的编号名次排序。思路:入门题,理解   “ 度 ” 和 map[ ] [ ]的关系。#include#include#includeusing namespace std;#define M 110int main(){ int n;

2016-08-09 18:05:46 491

原创 POJ 2240(水题 条件改变的 floyd 算法)

POJ2240题意:有n种类型的货币求是否存在经过兑换能增值。思路:改变条件即可。#include#include#includeusing namespace std;int n;double dist[100][100];char str[100][100];int find_it(char a[]){ for(int i = 1;i <=

2016-08-09 15:27:23 559

原创 POJ 1125 (经典水题 floyd)

POJ1125题意:众所周知,证券经纪业依靠的就是过度的传言。您需要想出股票经纪人中传播假情报的方法,让您的雇主在股票市场的占据优势。为了获得最大的效果,你必须蔓延最快的方式谣言。不幸的是你,股票经纪人信息只信任他们的“可靠来源”,这意味着你在你传播谣言之前必须考虑到他们的接触结构。它需要特定股票经纪人和一定的时间把谣言传递给他的每一位同事。你的任务将是写一个程序,告诉您选择哪一个

2016-08-09 14:38:35 2823

原创 POJ 2253(floyd 条件改变)

POJ 2253题意:有很多坐标,求点一到点二的每个通路之中最长的距离,输出最长的距离之中最短的那个。这道题无关最短路,利用Floyd的遍历,但是关键在于条件。#include#include#includeusing namespace std;double path[210][210];class coordinate{public:

2016-08-08 21:08:38 321

原创 POJ 1062(昂贵的聘礼 枚举 + Dijkstra)

POJ1062这道题是中文题,不多说,但是问题是数据可能不易看懂,比如样例的10000 3 2 分别是原价,等级,和可能兑换物品的数量,接下来是两行可能兑换的物品及另需要的钱。#include#includeusing namespace std;#define INF 0x3f3f3f3f#define Maxn 200int M,N;int price[Ma

2016-08-08 18:05:19 426

原创 POJ3259(经典bellman判断负权)

POJ3259题意:有n个虫洞,问有从一些虫洞穿行过程中因为时间的快慢能遇到自己吗?相对论。其实题很简单,就是问有没有负权的存在,若有将会一直松弛。#includeusing namespace std;#define INF 0x3f3f3f3f#define M 5200int dist[M];int n,m,f;int all;class Node

2016-08-08 15:13:26 339

原创 POJ 1860 (反向bellman用法)

Currency ExchangeTime Limit: 1000MS Memory Limit: 30000KTotal Submissions: 26659 Accepted: 9850DescriptionSeveral currency exchange points are working in our city.

2016-08-06 18:07:28 325

原创 POJ1256 && 1979 深搜入门

简单题,经典题:POJ1526 UVA5712#include#include#define M 105char pic[M][M];int m,n,idx[M][M];void DFS(int r,int c,int id){ if(r = m || c = n) return ; //边界处理 if(idx[r][c] > 0 || pic[r][c]

2016-08-05 17:20:23 795

原创 POJ Floyd入门

POJ1125POJ2240题:题:

2016-08-04 17:39:33 610

原创 POJ Dijkstra入门

POJ2253题:题:

2016-08-04 17:35:03 911

原创 POJ 1258 (简单最小生成树,prim算法)

POJ1258题意:输入n行每行代表第n个村庄分别与其它村庄的距离,求联系每个村庄的最小距离.这道题完全可以当做prim算法的模板去写POJ2421,POJ 1251,POJ 2560,POJ 1789,POJ 2485.最小生成树关键在于建图。#include#include#define M 210#define INF 0x3f3f3f3f

2016-08-03 08:56:37 879

原创 POJ 3278(简单广搜)

POJ3278题意:输入n,m,求由n到m需要最少步数,n只能加一减一或者乘二。写的第二道广搜题,发现用队列就是每一种可能读入队尾,然后再从队首一个一个的遍历。需要做的是判断条件和记录步数。#includeusing namespace std;#include#include#include#define M 200000int key[M];int visit

2016-08-02 10:48:19 543

原创 POJ1426(简单广搜)

POJ1426题意:输入一个数求其倍数(由01组成)。广搜的初学者,感觉这个很容易理解。因为在搜索的过程中可能会出现较大的数,所以开long long型的队列。#include#includeusing namespace std;void bfs(int n){ queueq; q.push(1); long long x ; whil

2016-08-02 10:12:46 419

空空如也

空空如也

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

TA关注的人

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