最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
当前位置: 首页 - 科技 - 知识百科 - 正文

CodeforcesRound#257(Div.2)题解

来源:懂视网 责编:小采 时间:2020-11-09 07:58:45
文档

CodeforcesRound#257(Div.2)题解

CodeforcesRound#257(Div.2)题解:Problem A A. Jzzhu and Children time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output There are n children in Jzzhu's school. Jzzhu is going to give some candies to them. Let's number
推荐度:
导读CodeforcesRound#257(Div.2)题解:Problem A A. Jzzhu and Children time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output There are n children in Jzzhu's school. Jzzhu is going to give some candies to them. Let's number

Problem A A. Jzzhu and Children time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output There are n children in Jzzhu's school. Jzzhu is going to give some candies to them. Let's number

Problem A

A. Jzzhu and Children

time limit per test

1 second

memory limit per test

256 megabytes

input

standard input

output

standard output

There are n children in Jzzhu's school. Jzzhu is going to give some candies to them. Let's number all the children from 1 to n. The i-th child wants to get at least ai candies.

Jzzhu asks children to line up. Initially, the i-th child stands at the i-th place of the line. Then Jzzhu start distribution of the candies. He follows the algorithm:

  1. Give m candies to the first child of the line.
  2. If this child still haven't got enough candies, then the child goes to the end of the line, else the child go home.
  3. Repeat the first two steps while the line is not empty.

Consider all the children in the order they go home. Jzzhu wants to know, which child will be the last in this order?

Input

The first line contains two integers n,?m (1?≤?n?≤?100; 1?≤?m?≤?100). The second line contains n integers a1,?a2,?...,?an (1?≤?ai?≤?100).

Output

Output a single integer, representing the number of the last child.

Sample test(s)

input

5 2
1 3 1 4 2

output

4

input

6 4
1 1 2 2 3 3

output

6

传送门:点击打开链接

解体思路:简单模拟题,用队列模拟这个过程即可。

代码:

#include 
#include 
using namespace std;

typedef pair P;
queue

q; int main() { #ifndef ONLINE_JUDGE freopen("257Ain.txt", "r", stdin); #endif int n, m, ans = 0; scanf("%d%d", &n, &m); for(int i = 0; i < n; i++) { int x; scanf("%d", &x); q.push(P(x, i + 1)); } while(!q.empty()) { P p = q.front(); q.pop(); if(p.first > m) { p.first -= m; q.push(p); } ans = p.second; } printf("%d\n", ans); return 0; }


Problem B

B. Jzzhu and Sequences

time limit per test

1 second

memory limit per test

256 megabytes

input

standard input

output

standard output

Jzzhu has invented a kind of sequences, they meet the following property:

You are given x and y, please calculate fn modulo 1000000007 (109?+?7).

Input

The first line contains two integers x and y (|x|,?|y|?≤?109). The second line contains a single integer n (1?≤?n?≤?2·109).

Output

Output a single integer representing fn modulo 1000000007 (109?+?7).

Sample test(s)

input

2 3
3

output

1

input

0 -1
2

output

1000000006

传送门:点击打开链接

解体思路:简单数学公式的推导,

f(n) = f(n-1) + f(n+1), f(n+1) = f(n) + f(n+2);

两式相加得:f(n-1) + f(n+2) = 0,

由上式可推得:f(n+2) + f(n+5) = 0;

由上两式得:f(n-1) = f(n+5),所以f(n)的周期为6;

我们只需求出f的前六项即可,ps:注意一点,f(n)可能为负值,对负数取模要先对负数加mod,使负数变为正数之后再取模。

代码:

#include 

const int mod = 1000000007;

int main()
{
	#ifndef ONLINE_JUDGE
	//freopen("257Bin.txt", "r", stdin);
	#endif
	int n, a [7];
	scanf("%d%d%d", &a[0], &a[1], &n);
	for(int i = 2; i < 7; i++)
	a[i] = a[i - 1] - a[i - 2];
	int t = a[(n - 1)% 6];
	printf("%d\n", t >= 0 ? t % mod : (t + 2 * mod) % mod);
	return 0;
}

Problem C

C. Jzzhu and Chocolate

time limit per test

1 second

memory limit per test

256 megabytes

input

standard input

output

standard output

Jzzhu has a big rectangular chocolate bar that consists of n?×?m unit squares. He wants to cut this bar exactly k times. Each cut must meet the following requirements:

  • each cut should be straight (horizontal or vertical);
  • each cut should go along edges of unit squares (it is prohibited to divide any unit chocolate square with cut);
  • each cut should go inside the whole chocolate bar, and all cuts must be distinct.
  • The picture below shows a possible way to cut a 5?×?6 chocolate for 5 times.

    Imagine Jzzhu have made k cuts and the big chocolate is splitted into several pieces. Consider the smallest (by area) piece of the chocolate, Jzzhu wants this piece to be as large as possible. What is the maximum possible area of smallest piece he can get with exactly k cuts? The area of a chocolate piece is the number of unit squares in it.

    Input

    A single line contains three integers n,?m,?k (1?≤?n,?m?≤?109; 1?≤?k?≤?2·109).

    Output

    Output a single integer representing the answer. If it is impossible to cut the big chocolate k times, print -1.

    Sample test(s)

    input

    3 4 1
    

    output

    6
    

    input

    6 4 2
    

    output

    8
    

    input

    2 3 4
    

    output

    -1

    传送门:点击打开链接

    解体思路:

    n行m列,在水平方向最多切n-1刀,竖直方向最多切m-1刀,如果k>n+m-2,就是不能切割的情况;我们找出沿水平方向或竖直方向可以切的最多的刀数mx,如果k>mx,我们就现在这个方向切mx刀,剩下的就是要将一条长为(mn+1)巧克力切(k - mx)刀;其他的情况就是要么就是沿着水平方向切k刀,要么就是沿着竖直方向切k刀,取两者间的大者。

    代码:

    #include 
    #include 
    #include 
    using namespace std;
    
    int main()
    {
    	int n, m, k;
    	long long ans = -1;
    	cin >> n >> m >> k;
    	if(k > n + m -2)
    	ans = -1;
    	else
    	{
    	int mx = max(n - 1, m - 1);
    	int mn = min(n - 1, m - 1);
    	if(k > mx)
    	ans = (mn + 1) / (k - mx + 1);
    	else
    	ans = max(1ll * n / (k + 1) * m, 1ll * m / (k + 1) * n);
    	}
    	cout << ans << endl;
    	return 0;
    }
    

    声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

    文档

    CodeforcesRound#257(Div.2)题解

    CodeforcesRound#257(Div.2)题解:Problem A A. Jzzhu and Children time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output There are n children in Jzzhu's school. Jzzhu is going to give some candies to them. Let's number
    推荐度:
    标签: div round 题解
    • 热门焦点

    最新推荐

    猜你喜欢

    热门推荐

    专题
    Top