摘要:
题意 给出一个n*n的棋盘,现有游戏规则如下: 玩家一开始在左上角的格子里,魔术师给出多条指令,每条指令包含两个信息: 1、玩家走的步数(>=n,且不重复) 2、魔术师要删除的格子 魔术师可以删除一些这一步走不到的格子,并继续发出指令,知道所有格子(除了一个)被删除,并且玩家被逼到了这个格子中。 求发出指令的一组可行方案分析 不难发现,第一条指令肯定是让玩家走n步,之后步数逐渐增加 我们可以将这个棋盘像国际象棋棋盘那样,黑白染色 易证,走奇数步时会走到另一种颜色上,所以我们只需要每次让玩家走到另一种颜色上去,把相反颜色的格子删掉 但是这样删有两点问题:1、如果一开始n就为偶... 阅读全文
摘要:
题意 定义d(n):d(n)=n+[n的各位数之和] 如果某个数不能由一个数通过多次d(n)得到这个数,那么称这个数为“自我数” 比如:d(12)=12+1+2=15 d(d(12))=d(15)=15+1+5=21 d(d(d(12)))=d(d(15))=d(21)=21+2+1=24 ………… 则15、21、24等数都是可以得到的,不是“自我数” 而例如20,则就不能通过由某个数多次d(n)得到,所以20为一个“自我数” 现在给定一个n和m,求1~n中“自我数”的个数 并且输出其中第a[i]个(i∈[1,m])“自我数”分析 不难想到,通过筛... 阅读全文
摘要:
题意 求有多少个平方后末尾为987654321的n位数分析 先写个小程序 通过暴力枚举: 当n<=8时,无解 当n=9时 有8个满足要求的数: 111111111 119357639 380642361 388888889 611111111 619357639 880642361 888888889 容易知道,某个数的平方为987654321时,以这个数结尾的数,它的平方也是987654321 所以当n>9时,满足条件的数只能以上述八个数结尾 当n=10时,由于最高位不为0,所以又8*9=72个 n=11时,71*10个;n=1... 阅读全文
摘要:
题意 There is sequence 1, 12, 123, 1234, ..., 12345678910, ... . Given first N elements of that sequence. You must determine amount of numbers in it that are divisible by 3. 有种数列:1,12,123..给出一个n,求这个数列中能被3整除的数的个数分析先来看看这几组数 第三列数表示1234..n这样的数除以3的余数,第四列数表示能被3整除的个数,即为答案1 1 1 02 12 0 13 123 0 24 1234 1 25.. 阅读全文
摘要:
题意 给出n朵花,m个花瓶,第i号花插在第j个花瓶可以得到的权值是w,要求从左向右依次插花,求可以得到的最大权值,并打印插花方案分析 简单的线性dp,记f[i,j]为从第一号花开始插,插到了第i号花,且第i号花插在第j个花瓶,所能得到的权值之和为多少 显然,f[i,j]=max{f[i-1,k]+w[i,j]} k∈[i-1,j) 这样,问题的一部分求解完了,关键是如何记录答案 开个数组ans[i,j,0..1]。表示第i朵花插在第j个花瓶时,它的前一朵花为ans[i,j,0],且这朵花插在了f[i,j,1]上。 这样,写个递归就可以得到插花方案Accepted Code 1 /*... 阅读全文
摘要:
题意 给出一个数n,求出比n小且与n互质的个数分析 欧拉函数模板 通式: 欧拉函数还有几个性质: 1.若p为质数,则φ(p)=p-1 2.若p为质数,则φ(p^a)=(p-1)*p^(a-1) 3.若p,q互质,则φ(p*q)=φ(p)*φ(q)Accepted Code 1 /* 2 PROBLEM:sgu102 poj 2407 3 AUTHER:Rinyo 4 MEMO:Euler's totient function 欧拉函数 5 */ 6 7 8 #include<cstdio> 9 int n;10 int main()11 {12 ... 阅读全文