![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
poj
qiweigo
四川大学大一新生
展开
-
poj1753Flip Game
背景:说实话,看到这道题的时候一点也不会,然后朋友说了用dfs做,虽然曾经学长讲过dfs,但我没有认真听,所以还是一点也没懂,然后百度了dfs,还是晕晕的,最后实在没办法,就看了朋友的代码,这下才弄懂了什么是dfs,我下面的代码就是看了朋友的代码后,凭借记忆,用他的思路写出来的。思路:对于每个格子,他要么被反转0次,要么1次,由于只有16个格子,所以他的总的情况有所以采用dfs深度搜索,在原创 2015-02-05 08:41:36 · 785 阅读 · 0 评论 -
poj2965The Pilots Brothers' refrigerator
背景:和poj1753一样,用dfs就可以做出来,只是和1753相比较得输出一些步骤,不过这也不麻烦,直接用两个数组就可以存储了。不过记住当递归回来的时候记住把数组里面对应位置的元素清零。思路:同上一篇1753.#include #include int q[4][4],ok=0,r[16],c[16];int iswin(void){ for(int i=0;i<4;i+原创 2015-02-05 12:43:39 · 688 阅读 · 0 评论 -
poj1328Radar Installation
背景:因为一个小错误找了一个多小时,就是在输入数据的时候,雷达Q的作用范围可以为0.while(scanf("%d %d",&N,&Q)==2&&N)这句话千万不要写成while(scanf("%d %d",&N,&Q)==2&&N&&Q)否则就会错。思路:简单贪心,先要找出每个小岛可以被雷达发现的区间,然后就可以运用贪心算法了,先用sort按照区间左端点升序排列。然后如下运用贪心就可以了原创 2015-02-07 15:53:29 · 665 阅读 · 0 评论 -
poj2109Power of Cryptography
背景:题目不难,但由于是第一次用二分法写代码,在结束条件那个地方纠结了半天。思路:简单二分法。学习:二分法:当数据量很大适宜采用该方法。采用二分法查找时,数据需是排好序的。主要思想是:(设查找的数组区间为array[low, high])(1)确定该期间的中间位置K(2)将查找的值T与array[k]比较。若相等,查找成功返回此位置;否则确定新的查找区域,继续二分查找。区域确定如下:a.a原创 2015-02-09 14:30:36 · 599 阅读 · 0 评论 -
poj2586Y2K Accounting Bug
背景:再做这道题的时候,我严重怀疑我的英语能力,o(︶︿︶)o 唉,翻译了一个多小时。思路:由于本题情况比较少,所以可以直接枚举出所有的情况,首先要找出五个月中最少亏损月份,然后就开始枚举出五种情况,最后输出即可。#include void print(int n){ if(n<0) printf("Deficit\n"); else printf("%d\n",n);原创 2015-02-09 16:12:42 · 822 阅读 · 0 评论 -
poj1068Parencodings
背景:做这道题的时候,完全无法理解题意,无赖使用了百度翻译,可翻译出来的东西一点也不容易理解,最后实在没办法了,就看了解题报告里面的大致题意描述。思路:首先用vector存储括号,右括号用0表示,左括号用1表示,并在存储过程中,用另外一个vector存储下右括号在整个brackets中的位置,这样就可以少一次检索,然后在依次处理brackets数组中的元素。学习:vector的使用。#原创 2015-02-10 12:19:16 · 702 阅读 · 0 评论 -
poj3295Tautology
背景:一直wrong在while()语句上最开始的时候没有把字符串为0考虑进去,所以导致输出一直是not。思路:本题我构造了一个堆栈和一个映射关系,p,q,r,s,t每个只有0和1两种情况,所以可以直接用for循环枚举即可,枚举的时候用map产生映射,这样比较简单,然后就是定义一个字符串数组,从字符串最后一个元素开始处理,然后就是简单的堆栈操作,在元素处理中,按照题意,遇到p,q,r,s,t直原创 2015-02-10 10:16:50 · 829 阅读 · 0 评论 -
poj1573Robot Motion
背景:一次ac,但做这种没有中文的题做多了,已经严重让我怀疑我自己了,毕竟英语太烂,读懂题意就要读好久。思路:主要用两个数组模拟整个path,一个用字符串数组来模拟出整个命令,然后用一个整型数组初始化为0,每次走一步就标记一下,这样就能很快的找到结束条件了。学习:懂得简化代码,把各种情况相同部分的代码写到一起。#include #include #include using name原创 2015-02-11 08:56:26 · 749 阅读 · 0 评论 -
poj2632Crashing Robots
背景:这道题不涉及算法,只是普通的模拟。思路:用结构体存储一个机器人的横坐标,纵坐标,还有他的方向,我在方向这个问题上运用了一点小技巧,那就是用0,1,2,3分别代表N,W,E,S这样对于处理L和R就非常的方便了。最主要的就是在处理F命令中既要注意机器人在移动过程中遇到其他机器人,又要注意机器人是否越界,在这方面,可以运用一个数组模拟出整个工厂,每个位置初始化为0,有机器人的位置设置为该机器人原创 2015-02-10 16:40:28 · 801 阅读 · 0 评论