输出输出一个整数,表示几天后可以爬到树顶。
样例输入复制样例数据
2 1 5
样例输出4
#include
int main()
{
int a,b,v,t=1,f;
scanf("%d%d%d",&a,&b,&v);
f=a;
while(f
问题 B: 组队竞赛
时间限制: 1 Sec 内存限制: 128 MB
目描述每年,A市都会组织程序设计竞赛,他们的比赛与我们的略有不同,是组成小团队进行比赛的,每个队伍有三人组成。根据传统,队员大多数都是男生,因此规定,队伍必须由两个男生和一个女生组成。
可是今年的情况有所不同,由于一个国际交流的活动,该市必须派出K位同学参加国际交流,当然交流没有男女比例的限制。为了顺利的进行国际交流,又要使得参加程序设计竞赛的队伍尽可能的多,就要进行细致的安排。
现在,给定共有M个男同学,N个女同学,需要派遣参加国际交流的为K位同学,请你计算,最多能有多少队伍参加本市的程序设计竞赛。
例如,M=6,N=3,K=2,我们可以派出1位男同学和1位女同学参加国际交流,剩余的5位男同学和2为女同学可以组成2个队伍(剩下的1位男同学就无法参加比赛了)。
输入输入仅一行,包含3个整数M,N,K(0<=M<=100, 0<=N<=100, 0<=K<=M+N),分别表示男生人数,女生人数和参加国际交流的人数。
输出输出一个整数,表示最多可以组织多少个队伍参加比赛。
样例输入复制样例数据
6 3 2
样例输出2
#include
int main()
{
int m,n,k,a[5];
scanf("%d%d%d",&m,&n,&k);
a[0]=m/2;
a[1]=n;
if(a[0]>a[1])
{
a[0]=a[1];
a[1]=(a[0]-a[1])*2+m%2;
}
else
{
a[1]=a[1]-a[0]+m%2;
}
k-=a[1];
if(k!=0)
k=k/3+1;
if(k>=0)
a[0]-=k;
printf("%d\n",a[0]);
return 0;
}
很是尴尬的没通过,思路是先看看最多能排几个队伍参赛,同时记录不能参赛的,然后让交流生与其比较,如果交流生大于的话,就相应拆掉几个队伍(一个队伍三个人)
问题 C: 幸运数字II
描述数字4和7是幸运数字,而其他的都不是幸运数字。一个整数是幸运数字,当且仅当它的十进制表示只包含幸运数字。
现在让你给出第K大的幸运数字。
输入第一行一个整数K(1<=K<=1,000,000,000)
输出第K大的幸运数字。
样例输入复制样例数据
1
样例输出
4
#include
#include
#include
typedef long long ll;
using namespace std;
ll a[1050]={0};
int main()
{
ll k=0,s=0,l,r,p=1;
for(int i=1;i<=1024;i++)
{
int t=i/2+1,q=i%2?4:7;
a[i]=10*a[i-t]+q;
}
cin>>l>>r;
for(int i=0;i<=1024;i++)
{
if(a[i]>=l)
{
for(;l<=a[i];l++)
{
s+=a[i];
if(l==r)break;
}
if(l==r)break;
}
}
cout<
简单的二叉树结构,把幸运数字按顺序存入数组。不过不是本人写的,算法还未学的太多,暂且贴一个别人的题解
问题 D: 分糖果分数
时间限制: 1 Sec 内存限制: 128 MB
题目描述幼儿园的N个小朋友得到了M颗糖果。
每个小朋友都有一个想要得到的糖果数目,如果没有达到他们的预期,就会不高兴。不高兴的程度可以用一个数值表示,就是他们无法满足的糖果数目的平方。例如,一个小朋友想要得到32颗糖果,而他只得到29颗糖果,那么有3颗糖果无法满足,因此不高兴值为9.
不幸的是,现有的糖果无法满足所有的小朋友,因此,需要你给出一个分配方案,使得不高兴值的总和最小。
输入第一行两个整数M和N(1<=M<=2*10^9)(1<=N<=100,000)
接下来N行,每行一个整数,表示每个孩子想要的糖果数。每个小于2*10^9且总和肯定超过M
输出最少生气值总和。输出数据保证结果在int64范围之内。
样例输入复制样例数据
5 3
1
3
2
样例输出1
#include
#include
int main()
{
int m,n,i,j,t,sum=0,a[100000];
scanf("%d%d",&m,&n);
for(i=0;i0;i++)
{
t=m;
m-=a[i];
}
a[i]-=t;
for(j=i;j
求大神填坑
这个题和第五场的C题差不多,可能是从最高开始扫,但是不知道如何扫到最后是所有的平方和最小