您的位置:首页 > 其它

大一周赛答案

2016-10-24 19:29 169 查看
1.队花的烦恼:

#include<stdio.h>
#include<string.h>
int main()
{
int n;
while(~scanf("%d",&n)){
int num[50],temp=1;
memset(num,0,sizeof(num));
if(n==0){
printf("0\n");
continue;
}
while(n>0){
num[temp]=n%2;
temp++;
n/=2;
}
for(int i=temp-1;i>=1;i--)printf("%d",num[i]);
printf("\n");
}
}


2.房间安排:
#include<iostream>
#include<string>
#include<queue>
#include<algorithm>
#include<set>
#include<cstring>
#include<cstdio>
using namespace std;
int main(){
int test;
cin>>test;
while(test--){
int day[185];
memset(day,0,sizeof(day));
int n;
scanf("%d",&n);
while(n--){
int t1,t2,t3;
scanf("%d%d%d",&t1,&t2,&t3);
for(int i=t2;i<t2+t3;i++)day[i]+=t1;
}
int ans=0;
for(int i=1;i<=180;i++)if(ans<day[i])ans=day[i];
printf("%d\n",ans);
}
}


3.猴子吃桃问题
#include<stdio.h>
#include<string.h>
int main()
{
int test;
scanf("%d",&test);
int ans[35];
memset(ans,0,sizeof(ans));
ans[0]=1;
for(int i=1;i<=30;i++){
ans[i]=ans[i-1]*2+2;
}
while(test--){
int n;
scanf("%d",&n);
printf("%d\n",ans
);
}
}


4.正三角形外接圆面积
#include<stdio.h>
#include<string.h>
#include<math.h>
#define PI 3.1415926
int main()
{
int test;
scanf("%d",&test);
while(test--){
double l,ans,r;
scanf("%lf",&l);
r=l/sqrt(3);
ans=PI*r*r;
printf("%.2lf\n",ans);
}
}


5.超级台阶
#include <stdio.h>
#include <iostream>
#include <queue>
#include <algorithm>
#include <string.h>
using namespace std;
int main(){
int test;
scanf("%d",&test);
int dp[50];
memset(dp,0,sizeof(dp));
dp[2]=1;
dp[3]=2;
for(int i=4;i<=40;i++){
dp[i]=dp[i-1]+dp[i-2];
}
while(test--){
int m;
scanf("%d",&m);
printf("%d\n",dp[m]);
}
}


6.最近点对
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
int main(){
int n;
while(~scanf("%d",&n),n){
int ans1,ans2;
int num[n+1];
for(int i=1;i<=n;i++)scanf("%d",&num[i]);
int temp=999999999;
for(int i=1;i<n;i++){
for(int j=i+1;j<=n;j++){
if(abs(num[i]-num[j])<temp){
ans1=num[i];
ans2=num[j];
temp=abs(num[i]-num[j]);
}
else if(abs(num[i]-num[j])==temp && (ans1+ans2)>(num[i]+num[j])){
ans1=num[i];
ans2=num[j];
temp=abs(num[i]-num[j]);
}
}
}
printf("%d %d\n",ans1,ans2);
}
}

7 排队:

#include<stdio.h>
#include<string.h>
int main(){
int test;
scanf("%d",&test);
while(test--){
int m,x;
scanf("%d%d",&m,&x);
int n[m+10];
memset(n,0,sizeof(n));
int people=m;
int i=0,j=0;//i代表第几个人报数,j代表这个人报的数字;
while(people>1){
if(n[i+1]==0){
i++;
j++;
}
else {
i++;
}
if(j==x){
j=0;
n[i]=1;
people--;
}
if(i==m){
i=0;
}
}
for(int i=1;i<=m;i++)if(!n[i]){printf("%d\n",i);}
}
}


8.算菜价
//. . . . . .(心诚才能看到本题代码 ,如果实在看不到,就试试粉我一波~)


9.盗梦空间
#include<iostream>
#include<string>
#include<queue>
#include<algorithm>
#include<set>
#include<cstring>
#include<cstdio>
using namespace std;
int main(){
int test;double ans;
cin>>test;
while(test--){
int n;
scanf("%d",&n);
double temp=1.0;
ans=0.0;
while(n--){
char s[10];
scanf("%s",s);
if(s[0]=='I')temp*=20.0;
else if(s[0]=='O')temp/=20.0;
else {
double t;
scanf("%lf",&t);
ans+=t/temp;
}
}
printf("%.0lf\n",ans*60);
}
}

所有答案(测试可运行)如上,还有哪里不会可以留言
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: