第一题:三色旗(10$)+10
问题描述
三色旗的问题最早由E.W.Dijkstra所提出,他所使用的用语为DutchNation Flag(Dijkstra为荷兰人),而多数的作者则使用Three-Color Flag来称之。
假设有一条绳子,上面有红、白、蓝三种颜色的旗子,起初绳子上的旗子颜色并没有顺序,您希望将之分类,并排列为蓝、白、红的顺序,要如何移动次数才会最少,注意您只能在绳子上进行这个动作,而且一次只能调换两个旗子。
#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;
int main()
{
char color[100];
cin>>color;
int wflag=0,bflag=0,/***************/;
int minstep=0;
while(wflag<=rflag)
{
if(color[wflag]=='b')
{
if(bflag!=wflag)
{
swap(color[bflag],color[wflag]);
minstep++;
};
bflag++;
wflag++;
}
else if(color[wflag]=='w')
wflag++;
else
{
while(/****************/)
rflag--;
if(wflag!=rflag)
{
swap(color[wflag],color[rflag]);
minstep++;
}
rflag--;
}
}
cout<<color<<endl;
cout<<"minstep="<<minstep<<endl;
return 0;
}
要求:填入空缺部分代码。
在这里插入代码片
第二题:第25阶台阶($10)+10
问题描述
如果我每一步迈上 1 个或两个台阶,先迈左脚,然后左右交换,最后一步迈右脚,也就是一共要走偶数步,那么,上完 25级台阶,有多少种不同的算法?
要求:只要输入结果即可。
——— ? ————
第三题:多少个果子($10)+10
问题描述
第一层有1个果子,第二层有3个果子,第三层有6个果子,第四层有10个果子,…,到一百层,一共有多少果子?
要求:只要输入结果即可。
——— ? ————
第四题:哥德巴赫猜想($15)+15
问题描述
哥德巴赫猜想:任一大于2的偶数,都可以表示成两个素数之和。
验证:2000以内大于2的偶数都能够分解为两个素数之和。
#include <iostream>
#include<cmath>
using namespace std;
int prime(int n);//判断是否为素数
int main()
{
int i,n;
/*
*/
return 0;
}
int prime(int i)
{
int j;
if(i<=1)return 0;
if(i==2)return 1;
for(j=2;j<=(int)(sqrt((double)i));j++)
if(i%j==0)
return 0;
return 1;
}
要求:填入空缺部分代码。
在这里插入代码片
第五题:输出Fibonacci数列的第n项的数值($15)+15
在这里插入代码片
第六题:星期几??($20)+20
#include<bits/stdc++.h>
using namespace std;
int whatday(int y,int m,int d)
{
/*
*/
}
string weekday[7]={"Monday","Tuesday","wednesday","Thursday","Friday","saturday","sunday"};
int main()
{
int y,m,d;
cin>>y>>m>>d;
cout<<weekday[whatday(y,m,d)]<<endl;
return 0;
}
要求:填入空缺部分代码。
在这里插入代码片
第七题:阿里巴巴与四十大盗($20)—可拆分背包
题目描述:
有一天,阿里巴巴赶着一头毛驴上山砍柴。砍好柴准备下山时,远处突然出现一股烟尘,弥漫着直向上空飞扬,朝他这儿卷过来,而且越来越近。靠近以后,他才看清原来是一支马队,他们共有四十人,一个个年轻力壮、行动敏捷。一个首领模样的人背负沉重的鞍袋,从丛林中一直来到那个大石头跟前,喃喃地说道:“芝麻,开门吧!”随着那个头目的喊声,大石头前突然出现一道宽阔的门路,于是强盗们鱼贯而入。阿里巴巴待在树上观察他们,直到他们走得无影无踪之后,才从树上下来。他大声喊道:“芝麻,开门吧!”他的喊声刚落,洞门立刻打开了。他小心翼翼地走了进去,一下子惊呆了,洞中堆满了财物,还有多得无法计数的金银珠宝,有的散堆在地上,有的盛在皮袋中。突然看见这么多的金银财富,阿里巴巴深信这肯定是一个强盗们数代经营、掠夺所积累起来的宝窟。为了让乡亲们开开眼界,见识一下这些宝物,他想一种宝物只拿一个,如果太重就用锤子凿开,但毛驴的运载能力是有限的,怎么才能用驴子运走最大价值的财宝分给穷人呢?阿里巴巴陷入沉思中……
假设山洞中有n种宝物,每种宝物有一定重量w和相应的价值v,毛驴运载能力有限,只能运走m重量的宝物,一种宝物只能拿一样,宝物可以分割。那么怎么才能使毛驴运走宝物的价值最大呢?
输入描述:
第一行是一个整型数m(m<100)表示共有m组测试数据。
每组测试数据的第一行是两个整数n,c (1<n,c<10000)表示该测试数据宝物数量及驴子的承载重量。
随后的n行,每行有两个正整数wi, vi分别表示第i个宝物的重量和价值(1<wi,vi<100)。
输出描述:
对于每一组输入,输出毛驴运走宝物的最大价值。
每组的输出占一行
样例输入:
6 19
2 8
6 1
7 9
4 3
10 2
3 4
样例输出:
24.6
在这里插入代码片
第一次评测=40$
第二次评测=70$
第三次评测=100$