0%

3.8

[蓝桥杯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 (){

/* int ans=0;
do{
if(fun()){
ans++;
}
}while(next_permutation(a,a+10));*/

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;
}
-------------本文结束感谢您的阅读-------------