传送门.
小丑决定今天休息一下,于是他走进了一家游乐场。游乐场里有高矮胖瘦的小盆友。小丑的脑海中不禁浮现出一个画面:在一艘海盗船上坐着n个熊孩子,海盗船周期性地摇摆,每个周期都会在船头或者船尾甩出去一个熊孩子,但是体重大于k的熊孩子会牢牢地抱住船体不能被甩出去。小丑想知道最多能甩出去多少熊孩子。
Input
第一行输入两个整数n和k。1<=n,k<=100
第二行输入n个孩子的体重(小于100)。
Output
输出一个整数——最多能甩出去的孩子数。
Examples
Input
7 5
1 6 4 9 5 8 3
Output
2
Input
5 2
3 1 2 1 3
Output
0
Input
5 100
12 34 55 43 21
Output
5
#include
int main()
{
int n,k,i,j,count=0,a[105];
scanf("%d %d",&n,&k);
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
for(i=0;i<n;i++)
{
if(a[i]<=k)
count++;
else
break;
}
for(i=n-1;i>=0;i--)
{
if(a[i]<=k)
count++;
else
break;
}
if(count/n==2)
count=n;
printf("%d",count);
return 0;
}
传送门.
WBH垃圾丢错啦,他想知道有多少种丢错垃圾的可能,总共有n袋垃圾和n个垃圾桶,假设wbh全丢错了呢,那么他有多少种丢错的可能,请输出一个值代表wbh有多少种可能全丢错
Input
输入数据包含多个多个测试实例,每个测试实例占用一行,每行包含一个正整数n(1
对于每行输入请输出可能的错误方式的数量,每个实例的输出占用一行。
Sample Input
2
3
Sample Output
1
2
#include
#define ll long long
ll fun(ll n){
if(n==1) return 0;
if(n==2) return 1;
return (n-1)*(fun(n-1)+fun(n-2));
}
int main(){
ll n,ans;
while(scanf("%lld",&n)!=EOF)
{
ans=fun(n);
printf("%lld\n",ans);
}
return 0;
}
传送门
第一行给一个n(<=10^5)
第二行n个数,代表a数组(-109<=ai<=109)
第二行n个数,代表b数组(-109<=bi<=109)
请你找一个最佳的d(可以是一个小数)使得ci = d*ai+bi,ci数组中0的个数尽可能多
Output
输出一个整数,c数组中最多可以有几个0.
Examples
Input
5
1 2 3 4 5
2 4 7 11 3
Output
2
Input
3
13 37 39
1 2 3
Output
2
Input
4
0 0 0 0
1 2 3 4
Output
0
Input
3
1 2 -1
-6 -12 6
Output
3
#include
#include
using namespace std;
map<long double, int>c;
const int N = 2e5+10;
int a[N], b[N];
int i,n,maxx=0,ans=0;
int main()
{
cin>>n;
for(i=1; i<=n; i++)
cin>>a[i];
for(i=1; i<=n; i++)
cin>>b[i];
for(i=1; i<=n; i++)
{
if(a[i] == 0)
{
if(b[i]==0) ans++;
else continue;
}
else
{
long double tmp = b[i]*1.0/a[i];
c[tmp]++;
maxx = max(maxx,c[tmp]);
}
}
cout<<maxx+ans<<endl;
return 0;
}
传送门
Mr. Frog住在一个税收制度很奇怪的国家
如果Mr. Frog的收入为 n (n ≥ 2) 元,那么他应该交n的最大的小于n的因子的税
For example,
n=6,交3,
n=25,交5,
n=7,交1
但是Mr. Frog已经身经百战,见得多了,他可以把自己的工资分成任意多份(每份数量为整数)分别按照这个规则缴税来逃税,那么,Mr. Frog最少需要交多少税呢
Input
一行一个整数 n (2 ≤ n ≤ 2·109) 表示Mr. Frog的收入
Output
一个整数,表示Mr. Frog最少交的钱数
Example
Input
4
Output
2
Input
27
Output
3
Hint
4=2+2
27=3+11+13
Mr. Frog 希望你们多猜想猜想
没有证明的东西在某个范围内还是正确的嘛
闷声发大财,这是最吼的
#include
#include
#define ll long long
int isprime(ll n)
{
int i;
for(i=2; i<=sqrt(n); i++)
{
if(n%i==0)
return 0;
}
return 1;
}
int main ()
{
ll i,n,flag=1;
while(scanf("%lld",&n)!=EOF)
{
if(n%2==0)
{
if(n==2)
printf("1\n");
else if(!isprime(n)) printf("2\n");
}
else
{
if(isprime(n)) printf("1\n");
else
{
if(isprime(n))
printf("1\n");
else if(isprime(n-2))
printf("2\n");
else printf("3\n");
}
}
}
return 0;
}
传送门
一个盒子里有一个红球和k个黑球.嘻嘻和哈哈不放回地交替从盒子里拿球, 直到红球被拿出,并且拿到红球的获胜.哈哈是一个长者, 为了给嘻嘻一点人生的经验,他让嘻嘻决定谁先拿.嘻嘻预感到自己先走的话可能会更好,因为他可能第一次就获胜.但如果他第一次拿到的是黑球, 那哈哈获胜的概率就会变大,因为一个黑球被去除掉了.嘻嘻应该让谁先拿才能使自己获胜的概率最大?
Input
多组输入数据( 数据总数小于50)
每组数据含有一个整数k ( 1≤k≤10^5)
Output
对于每组数据, 输出:
1, 如果先拿的有优势
2, 如果后拿的有优势
0, 如果不管谁先谁后, 概率都是一样的
Sample Input
1
2
Sample Output
0
1
#include
int main()
{
int k;
while(scanf("%d",&k)!=EOF)
{
if(k==1)
printf("0\n");
else if(k%2==0)
printf("1\n");
else printf("0\n");
}
return 0;
}
传送门
总所周知,小G最宠女友的,而小G的女友最喜欢唱歌,奈何她唱
得实在不咋地~~~ ~~。突然一日,小G女友想开个演唱会(…又
怎么会有观众呢…)。小G只好花钱买点观众,让这些观众去捧
场,唱完给小G女友鼓鼓掌,怎知道观众这东西他有个害羞值,
何为害羞值,若一个观众的害羞值为k,那么这个观众只有在场
上有k个及以上的人鼓掌了,这个观众才会鼓掌(害羞值为0的观
众就意味着等小G女友一唱完他就会鼓掌)。若到场的观众没有
全部都鼓掌,小G女友会感到难堪。小G不想让女友感到难堪,已
知小G已经买了n名观众(不能退货),这些观众都有其特定的害
羞值,为了使到场的所有观众都鼓掌,小G有可能还需要买观众
(额外买的观众,小G可以指定这些观众的害羞值),问:小G至
少还需要买多少观众????
输入描述:
第一行为1个正整数T(1 <= T <= 1000),表示样例数,以下有T
个样例
每个样例包含一个整数非负整数m(m <= 1000)和一个长度为
m+1的数字串S,数字m表示小G已经购买的观众的害羞值范围在
[0,m],m+1的数字串S: 表示害羞值为0的观众买了S[0]位,害
羞值为1的观众买了s[1]位…害羞值为m的观众买了s[m+1]
位,保证s[i]在0~9之间;
输出描述:
对于每个样例输出一行:Case #x: ans,x为样例序号,ans为 小G至少还需要购买的观众数量
示例:
Input
3
4 11111
1 09
5 110011
0 1
Ouput
Case #1: 0
Case #2: 1
Case #3: 2
Case #4: 0
#include
int main()
{
int i,t,m,cas=1,ans,sum;
char a[1005];
scanf("%d",&t);
while(t--)
{
ans=0,sum=0;
scanf("%d",&m);
scanf("%s",&a);
for(i=0;i<m;i++)
{
sum+=a[i]-'0';
if(sum<i+1)
{
ans++;
sum++;
}
}
printf("Case #%d: %d\n",cas++,ans);
}
return 0;
}