F. Zero Remainder Sum---Codeforces Round #677 (Div. 3)--题解

F. Zero Remainder

F. Zero Remainder Sum

You are given a matrix a of size n×m consisting of integers.

You can choose no more than ⌊m2⌋ elements in each row. Your task is to choose these elements in such a way that their sum is divisible by k and this sum is the maximum.

In other words, you can choose no more than a half (rounded down) of elements in each row, you have to find the maximum sum of these elements divisible by k.

Note that you can choose zero elements (and the sum of such set is 0).

Input
The first line of the input contains three integers n, m and k (1≤n,m,k≤70) — the number of rows in the matrix, the number of columns in the matrix and the value of k. The next n lines contain m elements each, where the j-th element of the i-th row is ai,j (1≤ai,j≤70).

Output
Print one integer — the maximum sum divisible by k you can obtain.

Examples
inputCopy
3 4 3
1 2 3 4
5 2 2 2
7 1 1 4
output
24
input
5 5 4
1 2 4 2 1
3 5 1 2 4
1 5 7 1 2
3 8 7 1 2
8 4 7 1 6
output
56
Note
In the first example, the optimal answer is 2 and 4 in the first row, 5 and 2 in the second row and 7 and 4 in the third row. The total sum is 2+4+5+2+7+4=24.

题意:
给你一个整数n,代表n个人,每个人都不一样;
你的任务是找出n个人可以跳两个回合舞的方法,
每一个回合舞都是由n/2个人组成的。

输出所有方法数。

看完题目,看样例,直觉告诉我,可以直接试试规律,于是盲算一波,

2 时候 : 1/(2/2)
4 的时候 :2 * 3 / (4/2)
8 的时候 :2 * 3 * 4 * 5 * 6 * 7 /(8/2)

n的时候 2 * 3 * 4 * 5 *… *(n-1)/(n/2)
然后 一试 20
确实是答案 交 对了;

#include <iostream>
#include<algorithm>
#include<map>
#include<set>
#define ll long long
using namespace std;
int main()
{
   
    int n;
    cin>>n;
    ll sum=1;
    for(int i=2;i<n;i++)
    {
   
        sum*=i;
    }
    n/=2;
    cout<<sum/n<<endl;
    return 0;
}

全部评论

相关推荐

12-01 12:34
已编辑
广东工业大学 Java
如题,fw🐭🐭,加上准备的太晚,大三上已找不到日常实习,导致连锁反应,下学期的暑期实习找不到好的实习,导致秋招找不到中大厂,现在是中小厂Java还有考公的选择,由于有些中小厂工作强度比肩大厂,钱还少,感觉不如考公如果🐮u们是我现在这种情况,会怎么选?
负债的混子:关注你一段时间了,突然发现你头像名字都改了,想必是这段时间压力很大。关于就业还是考公的选择,就像很多牛友说的:不要美化自己没走过的路。你现在想往互联网发展,发现这条路很难走,然后想往考公发展,但是你没走过考公这条路,所以你不知道这条路的压力如何。你今年大三了,还有时间给你做选择,我希望你能够尽快的决定自己的方向,然后一条路走到黑,而不是在这里徘徊,每个人的道路是不一样的,你无法复刻别人的路,你能做的就是尽力的完善自己。 最后,我想说的是,加油,陌生人!
点赞 评论 收藏
分享
点赞 评论 收藏
分享
11-15 19:28
已编辑
蚌埠坦克学院 硬件开发
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务