摘要:
http://watashi.ws/blog/1813/zojmonthly1101/ZOJ3457/ZOJ 3457 Absence Number大意:给定一个两位数N,求最小的m,使得1/m的十进制表示中恰好包含除N以外的所有两位数。最大的解是N=0时m=76344。题目的输入只有100种,所以可以暴力跑表,1/m十进制表示是循环小数,且在m步内开始循环,所以很容易求得其包含的所有两位数,最后判断一下是否满足条件就好了。注意不要漏数了两个循环节头尾组成的那个两位数,否则有几个数据会WA。更简单的方法是不判断循环节,直接循环m+1步。加上一些优化后,这个表实际可以在1s之内跑出。 但是我不会 阅读全文
posted @ 2011-02-11 22:30
AndreMouche
阅读(547)
评论(0)
推荐(0)
摘要:
POJ 1681 Painter's Problem算法核心:状态压缩,枚举大意:有一面n*n的墙,对其中某一格子上色,则其上、下、左、右及自身的颜色均变色,颜色仅有黄色和白色两种,已知墙面信息,问能否将墙面全部变为黄色,若能,至少需要涂色几次?分析:1.通过状态压缩,枚举第一行的着色网格2.通过已知的第一行着色状态,根据上层信息依次推得下层着色状态3.对2退出的第n层着色状态进行判断,若合法,更新当前最小值。#include#includeconstint N =17;constint inf =99999;bool graph[N][N];//graph[i][j]存储最初的颜色, 阅读全文
posted @ 2011-02-11 22:22
AndreMouche
阅读(560)
评论(0)
推荐(0)
摘要:
POJ 1948 Triangular Pastures题目描述:给最多40根木棍,每根长度不超过40,要用完所有的木棍构成面积最大的三角形,求出最大的面积。算法核心:二维01背包 使用到海伦公式: 已知三角形的三边长度a,b,c,求面积 S=√[p(p-a)(p-b)(p-c)] 而公式里的p为半周长: p=(a+b+c)/2 分析:用dp[i][j][k]表示到第i根木棒能否摆出边长分别为j,k的三角形 易得 dp[i][j][k] = dp[i-1][j-x[i]][k]|dp[i-1][j][k-x[i]]|dp[i-1][j][k]; 简单的空间压缩,化为二维dp,注意:这里每根.. 阅读全文
posted @ 2011-02-11 22:18
AndreMouche
阅读(891)
评论(0)
推荐(0)

浙公网安备 33010602011771号