题目链接:http://codeforces.com/problemset/problem/939/A

A题

A. Love Triangle
time limit per test

1 second

memory limit per test

256 megabytes

input

standard input

output

standard output

As you could know there are no male planes nor female planes. However, each plane on Earth likes some other plane. There are n planes on Earth, numbered from 1 to n, and the plane with number i likes the plane with number fi, where 1 ≤ fi ≤ n and fi ≠ i.

We call a love triangle a situation in which plane A likes plane B, plane B likes plane C and plane C likes plane A. Find out if there is any love triangle on Earth.

Input

The first line contains a single integer n (2 ≤ n ≤ 5000) — the number of planes.

The second line contains n integers f1, f2, ..., fn (1 ≤ fi ≤ nfi ≠ i), meaning that the i-th plane likes the fi-th.

Output

Output «YES» if there is a love triangle consisting of planes on Earth. Otherwise, output «NO».

You can output any letter in lower case or in upper case.

Examples
input

Copy
5
2 4 5 1 3
output

Copy
YES
input

Copy
5
5 5 5 5 1
output

Copy
NO
Note

In first example plane 2 likes plane 4, plane 4 likes plane 1, plane 1 likes plane 2 and that is a love triangle.

In second example there are no love triangles.

思路:题目大意就是1号喜欢2号,2号喜欢3号,3号喜欢1号,如何去表示呢?用数组来下标来表示,例如a[1]=2,表示1号喜欢2号,同理a[2] = 3,表示2号喜欢3号,a[3] = 1,表示3号喜欢1号。现在的遇到的困难是,如何去表示这三者的关系。请先看AC代码:

#include<iostream>
using namespace std;
int n,a[]; int main()
{
while(cin >> n)
{
int flag = ;//设一个标记
for(int i = ;i <= n;i++)
cin >> a[i];
for(int i = ;i <= n;i++)
if(a[a[a[i]]] == i)//只要有满足条件的马上跳出循环,立刻结束
flag = ;
if(flag == )
cout << "YES" << endl;
else
cout << "NO" << endl;
}
return ;
}

a[1]=2,a[2]=3,a[3]=1,这是一组满足条件的三角恋关系,我们拿这个例子来分析。a[1]=2说明1号喜欢2号,我们马上判断2号喜欢的是谁,我们想要知道2号喜欢谁,把a[1]=2(1号喜欢2号)中的2号放入数组a中,即a[a[1]],因为a[1]=2,a[a[1]]等价于a[2],这表示的是2号喜欢的是谁,同理,a[2]=3,如何表示3号喜欢谁呢?再把a[a[1]]放入数组a中,即a[a[a[1]]](即为3号喜欢的是谁),判断3号是否喜欢1号,如果是,则三者满足三角恋的条件,否则不满足,继续判断。好好理解下,理解后就不难了。

B题

题目链接:http://codeforces.com/problemset/problem/939/B

B. Hamster Farm
time limit per test

2 seconds

memory limit per test

256 megabytes

input

standard input

output

standard output

Dima has a hamsters farm. Soon N hamsters will grow up on it and Dima will sell them in a city nearby.

Hamsters should be transported in boxes. If some box is not completely full, the hamsters in it are bored, that's why each box should be completely full with hamsters.

Dima can buy boxes at a factory. The factory produces boxes of K kinds, boxes of the i-th kind can contain in themselves ai hamsters. Dima can buy any amount of boxes, but he should buy boxes of only one kind to get a wholesale discount.

Of course, Dima would buy boxes in such a way that each box can be completely filled with hamsters and transported to the city. If there is no place for some hamsters, Dima will leave them on the farm.

Find out how many boxes and of which type should Dima buy to transport maximum number of hamsters.

Input

The first line contains two integers N and K (0 ≤ N ≤ 1018, 1 ≤ K ≤ 105) — the number of hamsters that will grow up on Dima's farm and the number of types of boxes that the factory produces.

The second line contains K integers a1, a2, ..., aK (1 ≤ ai ≤ 1018 for all i) — the capacities of boxes.

Output

Output two integers: the type of boxes that Dima should buy and the number of boxes of that type Dima should buy. Types of boxes are numbered from 1 to K in the order they are given in input.

If there are many correct answers, output any of them.

Examples
input

Copy
19 3
5 4 10
output

Copy
2 4
input

Copy
28 3
5 6 30
output

Copy
1 5
思路:题目给的数据范围很大很大,注意用long long!!!判断总仓鼠总数除以某个盒子的容量取余(即%的就行),能被整除最好,说明这个盒子刚好能装满所有的仓鼠。这里要设置一个很大的数,比题目所给的盒子容量最大值还要大1(我设为temp)
然后依次判断总仓鼠数对盒子容量取模的值会不会大于temp,会的话执行接下来的操作,不会的话则跳过,具体在代码中解释。
AC代码
#include<iostream>
using namespace std;
long long n,k;//注意用long long!!! int main()
{
while(cin >> n >> k)
{
long long temp = 1e18 + ,flag = ,heshu = ,x;//long long!temp的初始值要设定好
for(int i = ;i <= k;i++)//从第一个盒子开始
{
cin >> x;
if(temp > n % x)//目的是取最小余数的那一项
{
temp = n % x;//满足条件则不断更新临时变量temp的值,一直到余数temp最小为止
flag = i;//用flag记录此时满足条件的是第几个盒子
heshu = n / x;//记录所需要盒子的数目
}
}
cout << flag << " " << heshu << endl;
}
return ;
}

Codeforces 939A题,B题(水题)的更多相关文章

  1. codeforces 577B B. Modulo Sum(水题)

    题目链接: B. Modulo Sum time limit per test 2 seconds memory limit per test 256 megabytes input standard ...

  2. Codeforces Round #367 (Div. 2)---水题 | dp | 01字典树

    A.Beru-taxi 水题:有一个人站在(sx,sy)的位置,有n辆出租车,正向这个人匀速赶来,每个出租车的位置是(xi, yi) 速度是 Vi;求人最少需要等的时间: 单间循环即可: #inclu ...

  3. codeforces 696A Lorenzo Von Matterhorn 水题

    这题一眼看就是水题,map随便计 然后我之所以发这个题解,是因为我用了log2()这个函数判断在哪一层 我只能说我真是太傻逼了,这个函数以前听人说有精度问题,还慢,为了图快用的,没想到被坑惨了,以后尽 ...

  4. CodeForces 589I Lottery (暴力,水题)

    题意:给定 n 和 k,然后是 n 个数,表示1-k的一个值,问你修改最少的数,使得所有的1-k的数目都等于n/k. 析:水题,只要用每个数减去n/k,然后取模,加起来除以2,就ok了. 代码如下: ...

  5. Codeforces Gym 100286G Giant Screen 水题

    Problem G.Giant ScreenTime Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.hust.edu.cn/vjudge/con ...

  6. codeforces 710A A. King Moves(水题)

    题目链接: A. King Moves 题意: 给出king的位置,问有几个可移动的位置; 思路: 水题,没有思路; AC代码: #include <iostream> #include ...

  7. codeforces 659A A. Round House(水题)

    题目链接: A. Round House time limit per test 1 second memory limit per test 256 megabytes input standard ...

  8. CodeForces 489B BerSU Ball (水题 双指针)

    B. BerSU Ball time limit per test 1 second memory limit per test 256 megabytes input standard input ...

  9. codeforces 702A A. Maximum Increase(水题)

    题目链接: A. Maximum Increase time limit per test 1 second memory limit per test 256 megabytes input sta ...

  10. Codeforces 44E - Anfisa the Monkey - [水题]

    题目链接:http://codeforces.com/problemset/problem/44/E 题意: 给一个字符串,让你分割成 $k$ 行,每行的字母数在 $[a,b]$ 之间. 题解: 这是 ...

随机推荐

  1. System 类初探

    System 类 操作方法 取得当前的系统时间 currentTemiMillis() public static long currenTimeMillis() ; 实例: 统计某些操作的执行时间 ...

  2. linux scp命令 将数据从一台linux服务器复制到另一台linux服务器

    scp是secure copy的简写,用于在Linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器,而且scp传输是加密的.可能会稍微影响一下速度.当你服务器 ...

  3. mysql设置用户密码规则

    一.查看密码规则 SHOW VARIABLES LIKE 'validate_password%'; 二.规则显示介绍 | Variable_name | Value | +------------- ...

  4. CodeForces - 573A (简单数论+模拟)

    题意 https://vjudge.net/problem/CodeForces-573A 有n个数ai​ ,你可以把每个数任意次×2 或×3 ,问能否最终使得每个数相等. 思路 x2和x3只能改变数 ...

  5. Html学习之十(CSS选择器的使用--伪类选择器)

    伪类选择器 一.基于a标签. 1.:hover 选择鼠标滑过的超链接元素 2.:active 选择鼠标单击中的超链接元素 3.:link 选择未被访问的超链接元素 4.:visited 选择已经被访问 ...

  6. Python学习笔记3 函数_20170614

    # 函数 定义 def my_abs(x) : if not isinstance(x, (int, float)) : raise TypeError('bad operand type') if ...

  7. zz自动驾驶多传感器感知的探索

    案例教学,把“问题”讲清楚了,赞 Pony.ai 在多传感器感知上积累了很多的经验,尤其是今年年初在卡车上开始了新的尝试.我们有不同的传感器配置,以及不同的场景,对多传感器融合的一些新的挑战,有了更深 ...

  8. 关于npm(一)

    npm install X: 把X包安装到node_modules目录中修改package.json运行npm install命令时,不会自动安装X npm install X –save: 把X包安 ...

  9. gitbook 入门教程之解决windows热加载失败问题

    破镜如何贴花黄 gitbook 在 Windows 系统无法热加载,总是报错! gitbook 是一款文档编写利器,可以方便地 markdown 输出成美观优雅的 html ,gitbook serv ...

  10. Java 发红包

    使用Java实现发红包的功能. 结构: package redPocket User.java Manager.java Member.java Demo.java 思路: Manager和Membe ...