CodeForces Round #444 (Div.2)

A. Div. 64

题意

问你能不能去掉一些0和1使这个二进制数整除64

题解

就是判断100000是不是个子串

 1 str = input()
 2 l = len(str)
 3 flag = 0
 4 ok = 0
 5 for i in range(l - 1, -1, -1):
 6     if flag < 6 and str[i] == '0':
 7         flag = flag + 1
 8     elif flag == 6 and str[i] == '1':
 9         ok = 1
10 if ok:
11     print('yes')
12 else:
13     print('no')
View Code

B. Cubes for Masha

题意

题解

暴力

 1 d = []
 2 n = int(input())
 3 
 4 class dice:
 5     def __init__(self, line):
 6         s = line.split()
 7         self.a = []
 8         for i in range(6):
 9             self.a.append(int(s[i]))
10         self.l = 6
11 
12 def isValid(x):
13     if x < 10:
14         for cur in d:
15             for i in cur.a:
16                 if x == i:
17                     return True
18     elif x < 100:
19         for i in range(n):
20             for p in d[i].a:
21                 for j in range(n):
22                     if i == j:
23                         continue
24                     for q in d[j].a:
25                         y = p * 10 + q
26                         if x == y:
27                             return True
28     else:
29         for i in range(n):
30             for j in range(n):
31                 if i != j:
32                     for k in range(n):
33                         if k != i and k != j:
34                             for p in d[i].a:
35                                 for q in d[j].a:
36                                     for r in d[k].a:
37                                         y = 100 * p + 10 * q + r
38                                         if x == y:
39                                             return True
40     return False
41 
42 for i in range(n):
43     d.append(dice(input()))
44 ans = 0
45 for i in range(1, 1000):
46     if isValid(i):
47         ans = i
48     else:
49         break
50 print(i - 1)
View Code

C. Solution for Cube

题意

给定一个骰子, 问一次90°的旋转能否复原

题解

总共三个方向, 6种旋转, 模拟一下就好了

 1 line = input().split()
 2 a = []
 3 for i in line:
 4     a.append(int(i))
 5 
 6 def isValid(b):
 7     flag = 0
 8     if b[flag] != b[flag + 1] or b[flag + 1] != b[flag + 2] or b[flag + 2] != b[flag + 3]:
 9         return False
10     flag = 4
11     if b[flag] != b[flag + 1] or b[flag + 1] != b[flag + 2] or b[flag + 2] != b[flag + 3]:
12         return False
13     flag = 8
14     if b[flag] != b[flag + 1] or b[flag + 1] != b[flag + 2] or b[flag + 2] != b[flag + 3]:
15         return False
16     flag = 12
17     if b[flag] != b[flag + 1] or b[flag + 1] != b[flag + 2] or b[flag + 2] != b[flag + 3]:
18         return False
19     flag = 16
20     if b[flag] != b[flag + 1] or b[flag + 1] != b[flag + 2] or b[flag + 2] != b[flag + 3]:
21         return False
22     flag = 20
23     if b[flag] != b[flag + 1] or b[flag + 1] != b[flag + 2] or b[flag + 2] != b[flag + 3]:
24         return False
25     return True
26 
27 def rotate():
28     q = []
29     for i in a:
30         q.append(i)
31     q[4], q[6], q[8], q[10], q[21], q[23], q[0], q[2] = q[0], q[2], q[4], q[6], q[8], q[10], q[21], q[23]
32     if isValid(q):
33         return True
34     q.clear()
35     for i in a:
36         q.append(i)
37     q[0], q[2], q[4], q[6], q[8], q[10], q[21], q[23] = q[4], q[6], q[8], q[10], q[21], q[23], q[0], q[2]
38     if isValid(q):
39         return True
40     #
41     q.clear()
42     for i in a:
43         q.append(i)
44     q[12], q[13], q[4], q[5], q[16], q[17], q[20], q[21] = q[20], q[21], q[12], q[13], q[4], q[5], q[16], q[17]
45     if isValid(q):
46         return True
47     q.clear()
48     for i in a:
49         q.append(i)
50     q[20], q[21], q[12], q[13], q[4], q[5], q[16], q[17] =  q[12], q[13], q[4], q[5], q[16], q[17], q[20], q[21]
51     if isValid(q):
52         return True
53     #
54     q.clear()
55     for i in a:
56         q.append(i)
57     q[15], q[13], q[2], q[3], q[16], q[18], q[9], q[8] = q[2], q[3], q[16], q[18], q[9], q[8], q[15], q[13]
58     if isValid(q):
59         return True
60     q.clear()
61     for i in a:
62         q.append(i)
63     q[2], q[3], q[16], q[18], q[9], q[8], q[15], q[13] = q[15], q[13], q[2], q[3], q[16], q[18], q[9], q[8]
64     if isValid(q):
65         return True
66     return False
67 
68 if rotate():
69     print('YES')
70 else:
71     print('NO')
View Code

D.

E.

F.

转载于:https://www.cnblogs.com/hexsix/p/7793458.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值