[蓝桥杯2016初赛]搭积木
题目描述
小明最近喜欢搭数字积木,一共有10块积木,每个积木上有一个数字,0~9。
搭积木规则:每个积木放到其它两个积木的上面,并且一定比下面的两个积木数字小。
最后搭成4层的金字塔形,必须用完所有的积木
下面是两种合格的搭法:
0
1 2
3 4 5
6 7 8 9
0
3 1
7 5 2
9 8 6 4
请你计算这样的搭法一共有多少种?
输出
一个整数表示答案
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
| #include<bits/stdc++.h> using namespace std; typedef long long ll; const int MAX_N=1e6+5;
int a[10]={0,1,2,3,4,5,6,7,8,9};
bool fun(){ bool flag=1; if(a[0]>a[1]||a[0]>a[2]) flag=0; if(a[1]>a[3]||a[1]>a[4]) flag=0; if(a[2]>a[4]||a[2]>a[5]) flag=0; if(a[3]>a[6]||a[3]>a[7]) flag=0; if(a[4]>a[7]||a[4]>a[8]) flag=0; if(a[5]>a[8]||a[5]>a[9]) flag=0; return flag; }
int main (){
cout<<768<<endl; return 0; }
|
[蓝桥杯2016初赛]有奖猜谜
题目描述
小明很喜欢猜谜语。最近,他被邀请参加了X星球的猜谜活动。
每位选手开始的时候都被发给777个电子币。
规则是:猜对了,手里的电子币数目翻倍,猜错了,扣除555个电子币, 扣完为止。
小明一共猜了15条谜语。战果为:vxvxvxvxvxvxvvx
其中v表示猜对了,x表示猜错了。请你计算一下,小明最后手里的电子币数目是多少。
输出
请填写表示最后电子币数目的数字。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| #include<bits/stdc++.h> using namespace std; typedef long long ll; const int MAX_N=1e6+5;
string a="vxvxvxvxvxvxvvx"; int main (){ int ans=777; for(int i=0;i<a.size()&&ans;i++){ if(a[i]=='v'&&ans>0) ans*=2; else ans-=555; } if(ans>0) printf("%d\n",ans); else printf("0\n");
return 0; }
|