51nod 1433【数学】】的更多相关文章

思路: 不晓得阿,n%9==0即n数值各个位加起来要%9==0: 如果知道这个,那么%90==0就是末尾多个0就好了,那么后面就是随便搞吧: #include <stdio.h> #include <string.h> #include <iostream> using namespace std; typedef long long LL; const int N=1e3+10; int a[N]; int z[N]; int n; int main() { int…
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1433 思路: 数论中关于9的倍数的理论:若是一个数能被9整除,则各位数之和为9的倍数. 因为这题是90的倍数,所以至少得有一个0. 分别统计0和5的个数,9个5相加的话就是9的倍数,计算出能有几个9个5,剩下的0全排最后就可以了. #include<iostream> #include<algorithm> #include<cstring>…
1433 0和5 题目来源: CodeForces 基准时间限制:1 秒 空间限制:131072 KB 分值: 10 难度:2级算法题  收藏  关注 小K手中有n张牌,每张牌上有一个一位数的数,这个字数不是0就是5.小K从这些牌在抽出任意张(不能抽0张),排成一行这样就组成了一个数.使得这个数尽可能大,而且可以被90整除. 注意: 1.这个数没有前导0, 2.小K不需要使用所有的牌. Input 每个测试数据输入共2行. 第一行给出一个n,表示n张牌.(1<=n<=1000) 第二行给出n个…
1433 0和5 题目来源: CodeForces 基准时间限制:1 秒 空间限制:131072 KB 分值: 10 难度:2级算法题  收藏  取消关注 小K手中有n张牌,每张牌上有一个一位数的数,这个字数不是0就是5.小K从这些牌在抽出任意张(不能抽0张),排成一行这样就组成了一个数.使得这个数尽可能大,而且可以被90整除. 注意: 1.这个数没有前导0, 2.小K不需要使用所有的牌. Input 每个测试数据输入共2行. 第一行给出一个n,表示n张牌.(1<=n<=1000) 第二行给出…
小K手中有n张牌,每张牌上有一个一位数的数,这个字数不是0就是5.小K从这些牌在抽出任意张(不能抽0张),排成一行这样就组成了一个数.使得这个数尽可能大,而且可以被90整除. 注意: 1.这个数没有前导0, 2.小K不需要使用所有的牌. Input 每个测试数据输入共2行. 第一行给出一个n,表示n张牌.(1<=n<=1000) 第二行给出n个整数a00,a11,a22,-,an−1n−1 (aii是0或5 ) 表示牌上的数字. Output 共一行,表示由所给牌组成的可以被90整除的最大的数…
小K手中有n张牌,每张牌上有一个一位数的数,这个字数不是0就是5.小K从这些牌在抽出任意张(不能抽0张),排成一行这样就组成了一个数.使得这个数尽可能大,而且可以被90整除. 注意: 1.这个数没有前导0, 2.小K不需要使用所有的牌. Input 每个测试数据输入共2行. 第一行给出一个n,表示n张牌.(1<=n<=1000) 第二行给出n个整数a[0],a[1],a[2],…,a[n-1] (a[i]是0或5 ) 表示牌上的数字. Output 共一行,表示由所给牌组成的可以被90整除的最…
F(n) = (n % 1) + (n % 2) + (n % 3) + ...... (n % n).其中%表示Mod,也就是余数. 例如F(6) = 6 % 1 + 6 % 2 + 6 % 3 + 6 % 4 + 6 % 5 + 6 % 6 = 0 + 0 + 0 + 2 + 1 + 0 = 3. 给出n,计算F(n), 由于结果很大,输出Mod 1000000007的结果即可. Input 输入1个数N(2 <= N <= 10^12). Output 输出F(n) Mod 100000…
小K手中有n张牌,每张牌上有一个一位数的数,这个字数不是0就是5.小K从这些牌在抽出任意张(不能抽0张),排成一行这样就组成了一个数.使得这个数尽可能大,而且可以被90整除. 注意: 1.这个数没有前导0, 2.小K不需要使用所有的牌. Input 每个测试数据输入共2行. 第一行给出一个n,表示n张牌.(1<=n<=1000) 第二行给出n个整数a[0],a[1],a[2],…,a[n-1] (a[i]是0或5 ) 表示牌上的数字. Output 共一行,表示由所给牌组成的可以被90整除的最…
题意 : 小K手中有n(1~1000)张牌, 每张牌上有一个一位数的数, 这个字数不是0就是5.小K从这些牌在抽出任意张(不能抽0张), 排成一行这样就组成了一个数.使得这个数尽可能大, 而且可以被90整除.注意:① 这个数没有前导0.② 小K不需要使用所有的牌. 分析 : 能被9整除的数, 其各个位数相加之后的和也是9的倍数.那能被90整除的数就相当于能加多了10倍, 即末尾加上了一个0.那只要构造一个前缀有k个5(k是9的倍数), 后缀填充0即可, 这里要注意如果没有0可选是无法构造出来的…
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1639 假如一开始有一根绳子. 那么增加一根的时候,可以插在它的尾部,也可以左端头开始插,或者右端头开始插.但是不能从头部开始插,因为这样和前面的重复了.因为它是环,旋转一下,变成一模一样了. 那么加入有2根了,就可以在第一.二根中间开始插,或者在第二根尾部开始插,也是可以左端头开始插,或者右端头开始插. 所以总方案就是2^(n - 1) * (n - 1)! 那么总方案…