获取中...

-

Just a minute...

Educational Codeforces Round 68 (Rated for Div. 2)

Remove a Progression

找到规律,隔一个删一个

Yet Another Crosses Problem

这个气死了,存的时候从index[1]开始的,访问从index[0],一直re

检测每一行和每一列‘*’数量,最大的行列数量,cntn,cntm以及取到最大值的所有行列

记录最多的数量,如果N - cntn + M - cntm == 1 || 0的话就直接输出

如果不是的话就需要判断一下缺的‘*’是不是在交汇点,是的话ans–

From S To T

  1. s中的字符t都有
  2. s中的字符在t中对应顺序相同
  3. s+p中的字符数量够组成t

1-2-K Game

终于找到规律了,收到之前取石头的启发,寻找必胜的策略

然后下面是打表代码

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
59
60
61
62
63
64
65
66
67
68
69
70
/*-------------------------------------------------------------------------------------------*/
struct Pos
{
int x,y,z;
}a[MAX];
int flag[MAX];
/* ------------------------------------------------------------------------------------------*/

void myanscout(bool flag)
{
if(!flag) cout << "Alice" <<endl;
else cout << "Bob"<<endl;
}

int main()
{
std::ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
//freopen("input.in","r",stdin);
//freopen("output.out","w",stdout);
/* --------------------------------------------------------------------------------------*/
cin >> T;
int k;
while(T--)
{
cin >> N >> k;
flag[0] = 1;
flag[1] = flag[2] = 0;//0代表走到这一步就会输
for(int i = 3;i <= N;i++)
{
a[i].x = i-1;
a[i].y = i-2;
if(i >= k) a[i].z = i-k;
else a[i].z = -1;
if(!flag[a[i].x] && !flag[a[i].y] && !flag[a[i].z])
{
flag[i] = 1;//1代表走到这一步就会赢
}
else flag[i] = 0;
}
for(int i = 0;i <= N;i++)
{
cout << setw(3) <<i;
}
cout << endl;
for(int i = 0;i <= N;i++)
{
cout << setw(3) <<a[i].x;
}
cout << endl;
for(int i = 0;i <= N;i++)
{
cout << setw(3) <<a[i].y ;
}
cout << endl;
for(int i = 0;i <= N;i++)
{
cout <<setw(3) << a[i].z ;
}
cout << endl;
for(int i = 0;i <= N;i++)
{
cout << setw(3) <<flag[i] ;
}
cout << endl;
myanscout(flag[N]);
}
return 0;
}

定义的x,y,z为这一步可以走到的下一步

flag的值代表走到这一步必输还是必赢(0,1)

轻松的可以知道,如果走到n,而n可以到达的下一步都是必输,你走到的n就会必赢,因为对手只能走到必输的一步

通过打表可以找到到规律

如果k不是三的倍数,那么flag一定是100循环

如果k是三的倍数,则是0-K的循环,其实就是k位的 flag1->0,循环

/img/post_blog/ECF-68-2-1.jpg

再仔细想一下,其实前三位一定是100,当k不是三的倍数的时候前四位也是确定的1001,那么5,6位也会确定是00,

第七位因为k不是3的倍数所以肯定是不会走到flag = 1的值上,所以答案确定

当k是3的倍数时候再走到k之前,flag是不变的,k位的flag就会 flag1->0

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
LL T,N,M;
/*-------------------------------------------------------------------------------------------*/

/* ------------------------------------------------------------------------------------------*/

void myanscout(bool flag)
{
if(!flag) cout << "Alice" <<endl;
else cout << "Bob"<<endl;
}

int main()
{
std::ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
//freopen("input.in","r",stdin);
//freopen("output.out","w",stdout);
/* --------------------------------------------------------------------------------------*/
cin >> T;
int k;
while(T--)
{
cin >> N >> k;
if(k % 3 == 0)
{
N = N%(k+1);
if(N == k) myanscout(0);
else myanscout(!(N % 3));
}
else
{
myanscout(!(N % 3));
}
}
return 0;
}
相关文章
评论
分享
  • ECF-70-2

    Educational Codeforces Round 70 (Rated for Div. 2)A.You Are Given Two Binary Strings乘2^k次,其实就是把二进制左移了k位 加法就是对应位加就好了,然...

    ECF-70-2
  • CF-577-2

    Codeforces Round #577 (Div. 2)A.Important Exam问学生分数总和最大为多少 那么就是每道题选的最多的选项为答案,计算即可 B.Zero Array如果sum是奇数的一定不行 如果是偶数的话就看...

    CF-577-2
  • CF-569-2

    吹爆这一场,第一次打到这么前,虽然赛后打得 Codeforces Round #569 (Div. 2)A.Alex and a Rhombus每次增多(i-1)*4个 B.Nick and Array他的操作真正的意思就是,变负数绝...

    CF-569-2
  • CF-576-2

    Codeforces Round #576 (Div. 2)A.City Day啊,爆哭,还想着怎么能优化一下,感觉会超时 结果优化wa了,真好,那就纯暴力 对每一个a,都找到l,r判断区间符不符合条件 注意0天的时候就好 B.Wat...

    CF-576-2
  • ECF-69-2

    Educational Codeforces Round 69 (Rated for Div. 2)A.DIY Wooden Ladder找最长的的俩个,然后看是能放的木板多,还是给的木板多 B.Pillars观察发现这个序列有三种情...

    ECF-69-2
  • CF-575-3

    Codeforces Round #575 (Div. 3)A.Three Piles of Candies傻逼题,一人拿一堆,剩下一堆还能随便分,加起来除2 B.Odd Sum Segments一个序列里只有奇数个奇数时和才是奇数 ...

    CF-575-3
  • CF-574-2

    Codeforces Round #574 (Div. 2)A.Drinks Choosing就把可以凑对的凑在一起,不能的俩俩组合 B.Sport Mafia题目思路:算出全放糖果的sum,算出与留下糖果的差cha 可知,每少放一次...

    CF-574-2
  • CF-571-2

    Codeforces Round #571 (Div. 2)Vus the Cossack and a Contestm,k都不小于n Vus the Cossack and Strings通过观察可以发现当字符串中’1’的数量奇偶相...

    CF-571-2
  • CF-559-2(未完待续)

    就学了一个lower把,先放在这里 还要学习读题23333 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748...

    CF-559-2(未完待续)
  • CF-554-2(未完待续)

    123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263...

    CF-554-2(未完待续)
Please check the parameter of comment in config.yml of hexo-theme-Annie!