自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

acm_JL的博客

acm 进阶之路

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

原创 poj-2361

解题思路:由于X先走并且两个人轮流执子,所以当网格图无效的时候,存在下列5种情况:  (1)O的个数大于X  (2)X的个数至少比O大2  (3)O和X同时赢  (4)X赢,但是双方的棋子数一样  (5)O赢,但是双方棋子数不同 技巧:用一个标志位flag来判断是否合法,尤其注意掌握判断行、列、对角线的元素是否相同的方法,技巧性较强。#includechar plan

2015-11-25 10:54:49 805

原创 poj-2612

解题思路:题目其实不难,但是处理的时候技巧性很强,在输入过程中利用标志flag直接判断有无触发地雷,直接省去了两个for循环。多次使用a?b:c的结构,省去了大量不必要的判断语句,其实解题时还要注意的就是,我们应该把所有的点周围的地雷数利用二重循环存储到数组中,而不应该在判断的时候在临时计算。此题给我最大的启发就是,提前将一些要计算的算好存起来,不要一边判断一边计算,效率极低还易出错。#inclu

2015-11-25 01:37:57 823

原创 poj-2608

#includeint main(){ char *alpha="ABCDEFGHIJKLMNOPQRSTUVWXYZ";//用字符数组存储字母 char *num="01230120022455012623010202";//用字符数组存储对应的数字字符 char ch,last; last='0';//last的主要作用是判断是否输出和剔除重复数字。 while((ch=g

2015-11-23 03:12:16 656

原创 poj-2538

解题思路:用一个字符数组存储键盘上面的字符,利用putchar和getchar进行输入输出字符,找到对应字符出现的位置,输出其前面一个即可,采用字符数组避免了大量的switch/case语句。#includeint main(){ char *s="`1234567890-=QWERTYUIOP[]\ASDFGHJKL;'ZXCVBNM,./";//用字符数组的形式存储元素,省去了大

2015-11-23 02:07:43 863

原创 poj-1597

解题思路:题目的意思就是一个生成随机数的函数, seed[x+1] = ( seed[x] +step) % mod,判断这个随机生成函数的好坏的依据是如果能够产生0~mod-1内的所有数,就是一个好的,否则坏。假设在k步之后,seed[k] = seed[0],故有seed[k] = ( seed[0] +step*k ) % mod=seed[0],显然step* k

2015-11-23 01:19:22 955

原创 poj-1528

题目不难,主要注意输出格式即可。#include #include //有此头文件才可以用printf输出方式。 #include//包含cout输出格式的头文件 using namespace std;int main(){ int i,n,a[120]; printf("PERFECTION OUTPUT\n"); while(scanf("%d",&n))

2015-11-22 13:44:48 559

原创 poj-2234

此题属于尼姆博奕(Nimm Game):有n堆各若干个物品,两个人轮流从某一堆取任意多(或者最多m个,只需把每堆%m)的物品,规定每次至少取一个,多者不限,最后取光者得胜。  强记策略: n堆物品数量对应的n个二进制数,连续n-1次异或运算,若结果为0,则说明所有位平衡,后者获胜,若结果为1,则说明存在非平衡位,前者获胜。#includeusing namespace std;int

2015-11-22 00:01:43 651

原创 poj-1852

解题思路:我们直接忽略蚂蚁的相遇事件,假设所有的蚂蚁即使相遇了也不会做出改变,仍然走自己的路。这样每一个蚂蚁掉落的时间就只有2个取值,一个是向左走的时间,一个是向右走的时间,全部掉落的最早时间是每只蚂蚁尽快掉落用时的最大值,因为这些蚂蚁现在互不干扰,同理,全部掉落的最迟时间就是每只蚂蚁尽量慢掉落用时的最大值。#include#includeusing namespace std;in

2015-11-21 20:59:32 744

原创 poj2573

解题思路:由于一次过桥最多两个人,且手电筒需要往返传递,因此以两个成员过桥为一个分析单位,计算过桥时间,我们按照过桥时间递增的顺序将n个成员排序,设当前序列中,A是最快的人,B是次快的人,a是最慢的人,b是次慢的人。又两种过桥方案:(1)用最快的成员传递手电筒帮助最慢和次慢的人过桥,所有时间为2*A+a+b;(2)用最快和次快的成员传递手电筒帮助最慢和次慢的人过桥:步骤如下

2015-11-21 16:28:26 951

原创 poj-2661-Factstone Benchmark

解题思路:在1960年,字的大小是4位,以后每十年翻一番,就意味着,y年的字的位数为k=pow(2,(y-1960)/10),而k位的无符号整数是pow(2,k)-1,n!要小于等于pow(2,k)-1。直接进行求解容易溢出和超时,所以采用对数运算。n!c++代码如下:#include#includeusing namespace std;int main(){ int

2015-11-21 00:11:35 584

空空如也

空空如也

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

TA关注的人

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