0%

3-10

[蓝桥杯2017初赛]纸牌三角形

题目描述
A,2,3,4,5,6,7,8,9 共9张纸牌排成一个正三角形(A按1计算)。要求每个边的和相等。
下图就是一种排法这样的排法可能会有很多。
A
9 6
4 8
3 7 5 2
如果考虑旋转、镜像后相同的算同一种,一共有多少种不同的排法呢?
输出
输出一个整数表示答案

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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int MAX_N=1e6+5;

int a[9]={1,2,3,4,5,6,7,8,9} ;
int ans=0;
map<int,int> mp;

bool fun(){
int aa=a[0]+a[1]+a[3]+a[5];
int bb=a[0]+a[2]+a[4]+a[8];
int cc=a[5]+a[6]+a[7]+a[8];
if(aa==bb&&bb==cc) return 1;
else return 0;
}

void check(){
int x=a[0];
for(int i=1;i<9;i++){
x*=10;
x+=a[i];

}
int y=0;
int z=0;
//旋转
y=a[5]*100000000+a[6]*10000000+a[3]*1000000+a[7]*100000+a[1]*10000+a[8]*1000+a[4]*100+a[2]*10+a[0];

z=a[8]*100000000+a[4]*10000000+a[7]*1000000+a[2]*100000+a[6]*10000+a[0]*1000+a[1]*100+a[3]*10+a[5];

int xx=0;
int yy=0;
int zz=0;
//镜像
xx=a[0]*100000000+a[1]*1000000+a[2]*10000000+a[3]*10000+a[4]*100000+a[5]+a[6]*10+a[7]*100+a[8]*1000;
yy=a[5]*100000000+a[6]*1000000+a[3]*10000000+a[7]*10000+a[1]*100000+a[8]+a[4]*10+a[2]*100+a[0]*1000;
zz=a[8]*100000000+a[4]*1000000+a[7]*10000000+a[2]*10000+a[6]*100000+a[0]+a[1]*10+a[3]*100+a[5]*1000;

if(mp[x]==0&&mp[y]==0&&mp[z]==0&&mp[xx]==0&&mp[yy]==0&&mp[zz]==0){
ans++;
mp[x]=1;
mp[y]=1;
mp[z]=1;
mp[xx]=1;
mp[yy]=1;
mp[zz]=1;
}
}
int main (){
/* do{
if(fun()){
check();
}
}while(next_permutation(a,a+9));
printf("%d\n",ans);*/
cout<<144<<endl;
}

[蓝桥杯2017初赛]外星日历

题目描述
某星系深处发现了文明遗迹。他们的计数也是用十进制。
他们的文明也有日历。日历只有天数,没有年、月的概念。
有趣的是,他们也使用了类似“星期”的概念,只不过他们的一个星期包含了9天,为了方便,这里分别记为: A,B,C….H,I
从一些资料上看到,
他们的23日是星期E
他们的190日是星期A
他们的343251日是星期I
令人兴奋的是,他们居然也预见了“世界末日”的那天,当然是一个很大很大的数字
651764141421415346185
请你计算一下,这遥远的一天是该文明的星期几?
输出
输出一个大写字母表示答案

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
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int MAX_N=1e6+5;

int mod(string a,int b){
int res=0;
for(int i=0;i<a.size();i++){
res=(res*10+(a[i]-'0'))%b;
}
return res;
}


int main (){

/*string a;
int b;
cin>>a>>b;
int day=(mod(a,b)+8)%9;
char c=day+'A';
printf("%c\n",c);*/
cout<<'G'<<endl;

}

-------------本文结束感谢您的阅读-------------