Codeforces 764 A-B

翻译略戳,轻喷。。。

A. Taymyr is calling you

描述

Dujikov同志正忙着为Timofey的生日选择艺术家,他收到来自Taymyr的登山家Ilia的电话。

登山家Ilia每N分钟call,即在分钟n,2n,3n、等等。艺术家每m分钟来见Dujikov同志,即在分钟M、2M、3M等。天是Z分钟长,每天有1,?2,?…,?Z分钟.他应该杀死多少艺术家使当Ilia打着电话时房间里没有艺术家。

考虑一个电话和一个艺术家的谈话,只要一分钟。

【题意:就是Call和artist不能冲突,如果冲突就不要这个artist】

输入

唯一的字符串包含三个整数N,M和Z(1?≤?N,?m,?Z?≤?104)。

输出

打印一个整数 ,表示应该被取消艺术家的数量。

Examples

Input

1 1 10

Output

10

Input

1 2 5

Output

2

Input

2 3 9

Output

1

PS

Taymyr是俄罗斯北部的一个地方。

在第一次测试点中,艺术家们每分钟都会来,此外还有来电,所以我们需要取消他们。

在第二个测试点中,我们需要取消第二和第四分钟来的艺术家。

在第三个测试点,只需要取消第六分钟来的艺术家。

思路

就是在1..z的区间里面找n和m的公倍数有多少个全部取消了

代码 pas

 1 program test;
 2 var
 3   n,m,z,i,j,ans:Longint;
 4   b:array[1..10000] of boolean;
 5
 6 begin
 7    fillchar(b,sizeof(b),true);
 8    readln(n,m,z);
 9    i:=n;  j:=m;
10    while i<=z do
11       begin
12           b[i]:=false;
13           inc(i,n);
14       end;
15    while j<=z do
16       begin
17           if b[j]=false then inc(ans);
18           inc(j,m);
19       end;
20    writeln(ans);
21 end.

 

B. Timofey and cubes

Timofey今天生日啦!他爸妈给了他n个立方体作为一套礼物给他。每个立方体有个数字写在上面 ai, Timofey将所有立方体放在一行,然后去拆其他的礼物

这时,他的哥哥 Dima 按照以下的规则重新整理了立方体. 假设这些立方体被编号为1-n, Dima 做了一些小步骤, 在第i步,他会将第i个立方体到第 (n?-?i?+?1) 个立方体反转

i?≤?n?-?i?+?1时他会一直这样做.当做完这些操作, Dima 就跑啦【没错,他跑啦】, 并对自己感到非常自豪. 当Timofey 回头来看他的立方体时候,他发现它们的顺序变了.

快快帮助Timofey 凭借现在的状况恢复这些立方体到初始状态

Input

第一行包含整数 n (1?≤?n?≤?2·105) — 立方体的数量

第二行包含 n 个整数a1,?a2,?...,?an (?-?109?≤?ai?≤?109), ai 是当Dima 瞎搞完后,第i个立方体上写着的数字

Output

输出n个整数用空格隔开 —开始时每个立方块上写着的数

可以保证这个答案啊是唯一的

Examples

input

7

4 3 7 6 9 1 2

output

2 3 9 6 7 1 4

input

8

6 1 4 2 5 6 9 2

output

2 1 6 2 5 4 9 6

Note

考虑第一个样例:

  1. 刚开始的数列是 [2, 3, 9, 6, 7, 1, 4].
  2. 第一次操作完是 [4, 1, 7, 6, 9, 3, 2].
  3. 第二次操作完 [4, 3, 9, 6, 7, 1, 2].
  4. 第三次操作完 [4, 3, 7, 6, 9, 1, 2].
  5. 第四次我们只需要翻转中间那个数, 所以并没改变啥.

最终结果 is [4, 3, 7, 6, 9, 1, 2].

So the answer
for this case is row [2, 3, 9, 6, 7, 1, 4].

 

思路

可以发现他的操作次数就是n div 2嘛,

很明显,第i个只能和第n-i+1个交换【对称】

对于第i个和第j个,假设有若干步骤会交换他们俩【j=n-i+1】

当改动区间i..j,此时就是有交换i和j的位置中的若干步骤的最后一步,

那么如果操作的步数是偶数,就换来换去还是换回来啦,所以保持不变

奇数自然交换过来就可以

 

代码

 1 program test;
 2 var
 3   n,i,tmp:Longint;
 4   a:array[1..200000] of longint;
 5
 6 begin
 7
 8    readln(n);
 9    for i:= 1 to n do
10     read(a[i]);
11    for i:= 1 to n div 2 do
12    if odd(i) then
13     begin
14       tmp:=a[i];
15       a[i]:=a[n-i+1];
16       a[n-i+1]:=tmp;
17     end;
18    for i:= 1 to n do write(a[i],‘ ‘);
19 end.

 

时间: 2024-12-17 12:33:06

Codeforces 764 A-B的相关文章

Codeforces Round #394 (Div. 2)

传送门:http://codeforces.com/contests/763,764 A题:[l,r]中有a个偶数,b个奇数,问存不存在l和r,1<=l<=r.很容易想到,如果abs(a-b)<=1,那么l和r就是存在的,除了一种情况,就是a=b=0的时候.由于l和r都大于等于1,所以当a=b=0时,不存在这种情况 #include <iostream> #include <cstdio> #include <cstring> #include <

【codeforces 718E】E. Matvey&#39;s Birthday

题目大意&链接: http://codeforces.com/problemset/problem/718/E 给一个长为n(n<=100 000)的只包含‘a’~‘h’8个字符的字符串s.两个位置i,j(i!=j)存在一条边,当且仅当|i-j|==1或s[i]==s[j].求这个无向图的直径,以及直径数量. 题解:  命题1:任意位置之间距离不会大于15. 证明:对于任意两个位置i,j之间,其所经过每种字符不会超过2个(因为相同字符会连边),所以i,j经过节点至多为16,也就意味着边数至多

Codeforces 124A - The number of positions

题目链接:http://codeforces.com/problemset/problem/124/A Petr stands in line of n people, but he doesn't know exactly which position he occupies. He can say that there are no less than a people standing in front of him and no more than b people standing b

Codeforces 841D Leha and another game about graph - 差分

Leha plays a computer game, where is on each level is given a connected graph with n vertices and m edges. Graph can contain multiple edges, but can not contain self loops. Each vertex has an integer di, which can be equal to 0, 1 or  - 1. To pass th

Codeforces Round #286 (Div. 1) A. Mr. Kitayuta, the Treasure Hunter DP

链接: http://codeforces.com/problemset/problem/506/A 题意: 给出30000个岛,有n个宝石分布在上面,第一步到d位置,每次走的距离与上一步的差距不大于1,问走完一路最多捡到多少块宝石. 题解: 容易想到DP,dp[i][j]表示到达 i 处,现在步长为 j 时最多收集到的财富,转移也不难,cnt[i]表示 i 处的财富. dp[i+step-1] = max(dp[i+step-1],dp[i][j]+cnt[i+step+1]) dp[i+st

Codeforces 772A Voltage Keepsake - 二分答案

You have n devices that you want to use simultaneously. The i-th device uses ai units of power per second. This usage is continuous. That is, in λ seconds, the device will use λ·ai units of power. The i-th device currently has bi units of power store

Educational Codeforces Round 21 G. Anthem of Berland(dp+kmp)

题目链接:Educational Codeforces Round 21 G. Anthem of Berland 题意: 给你两个字符串,第一个字符串包含问号,问号可以变成任意字符串. 问你第一个字符串最多包含多少个第二个字符串. 题解: 考虑dp[i][j],表示当前考虑到第一个串的第i位,已经匹配到第二个字符串的第j位. 这样的话复杂度为26*n*m*O(fail). fail可以用kmp进行预处理,将26个字母全部处理出来,这样复杂度就变成了26*n*m. 状态转移看代码(就是一个kmp

Codeforces Round #408 (Div. 2) B

Description Zane the wizard is going to perform a magic show shuffling the cups. There are n cups, numbered from 1 to n, placed along the x-axis on a table that has m holes on it. More precisely, cup i is on the table at the position x?=?i. The probl

Codeforces 617 E. XOR and Favorite Number

题目链接:http://codeforces.com/problemset/problem/617/E 一看这种区间查询的题目,考虑一下莫队. 如何${O(1)}$的修改和查询呢? 令${f(i,j)}$表示区间${\left [ l,r \right ]}$内数字的异或和. 那么:${f(l,r)=f(1,r)~~xor~~f(1,l-1)=k}$ 记一下前缀异或和即可维护. 1 #include<iostream> 2 #include<cstdio> 3 #include&l