内容发布更新时间 : 2024/11/16 4:47:07星期一 下面是文章的全部内容请认真阅读。
}
}
}
33.编号:ALGO-33 题目:数列 关键字:数学 进制 类型:VIP试题 .问题描述
给定一个正整数k(3≤k≤15),把所有k的方幂及所有有限个互不相等的k的方幂之和构成一个递增的序列,例如,当k=3时,这个序列是: 1,3,4,9,10,12,13,…
(该序列实际上就是:30,31,30+31,32,30+32,31+32,30+31+32,…) 请你求出这个序列的第N项的值(用10进制数表示)。 例如,对于k=3,N=100,正确答案应该是981。 输入格式
只有1行,为2个正整数,用一个空格隔开: k N
(k、N的含义与上述的问题描述一致,且3≤k≤15,10≤N≤1000)。 输出格式
计算结果,是一个正整数(在所有的测试数据中,结果均不超过*109)。(整数前不要有空格和其他符号)。 样例输入 3 100 样例输出 981 参考代码: import .*;
public class Main {
static long a[]=new long[1001];
public static void main (String args[])throws IOException{ BufferedReader bf=new BufferedReader(new InputStreamReader); String s[]=().split(\ int k=(s[0]); int n=(s[1]); int m=1; int sum=0; while(n>0){ a[m++]=n%2; n=n/2; } m--;
for(int i=1;i<=m;i++){ sum+=a[i]*add(k,i-1); } }
static int add(int k,int n){ int sum=1;
for(int i=1;i<=n;i++) sum*=k; return sum; } }
34. 编号:ALGO-34 题目:纪念品分组
关键字:贪心 排序 类型:VIP试题 问题描述
元旦快到了,校学生会让乐乐负责新年晚会的纪念品发放工作。为使得参加晚会的同学所获得的纪念品价值 相对均衡,他要把购来的纪念品根据价格进行分组,但每组最多只能包括两件纪念品,并且每组纪念品的价格之和不能超过一个给定的整数。为了保证在尽量短的时 间内发完所有纪念品,乐乐希望分组的数目最少。
你的任务是写一个程序,找出所有分组方案中分组数最少的一种,输出最少的分组数目。 输入格式
输入包含n+2行:
第1行包括一个整数w,为每组纪念品价格之和的上限。 第2行为一个整数n,表示购来的纪念品的总件数。
第3~n+2行每行包含一个正整数pi (5 <= pi <= w),表示所对应纪念品的价格。 输出格式
输出仅一行,包含一个整数,即最少的分组数目。 样例输入 100 9 90 20 20 30 50 60 70 80 90
样例输出 6
数据规模和约定
50%的数据满足:1 <= n <= 15
100%的数据满足:1 <= n <= 30000, 80 <= w <= 200 参考代码: import .*;
import class Main {
static int a[]=new int[30001];
public static void main (String args[])throws IOException{ BufferedReader bf=new BufferedReader(new InputStreamReader); int w=()); int n=());
for(int i=1;i<30001;i++) a[i]=999999; int k=n; int sum=0;
for(int i=1;i<=n;i++) a[i]=()); (a);
oter:for(int i=1;i<=n;i++){ for(int j=n;j>0;j--){ if(k==i){ sum++; break oter; }
if(k-i==1&&a[i]+a[k]>w){
sum+=2; break oter; }
if(k-i==1&&a[i]+a[k]<=w){ sum++; break oter; }
if(a[i]+a[k]>w){ k--; sum++; } else{ sum++; k--; break; } } }
} }
35. 编号:ALGO-35 题目:传球游戏 关键字:动态规划 类型:VIP试题 【问题描述】
上体育课的时候,小蛮的老师经常带着同学们一起做游戏。这次,老师带着同学们一起