当前你的浏览器版本过低,网站已在兼容模式下运行,兼容模式仅提供最小功能支持,网站样式可能显示不正常。
请尽快升级浏览器以体验网站在线编辑、在线运行等功能。

建议使用的浏览器:

谷歌Chrome 火狐Firefox Opera浏览器 微软Edge浏览器 QQ浏览器 360浏览器 傲游浏览器

3351:Gerrymandering

题目描述

Politicians like to get elected. They will do just about anything to get elected. Including changing the rules of the voting: who can vote, where you can vote, when you can vote, etc. One very common practice is called gerrymandering, where the boundaries of "ridings" are redrawn to favour a particular candidate (the one doing the redrawing, of course).

Your task is to help determine how to do some simple, linear gerrymandering.

You will be given the information about N ridings (2 ≤ N ≤ 1000) where there are candidates from p (2 ≤ p ≤ 10) different parties. These N ridings are linear, in the sense that they are side-by-side; there are two ridings (on the ends) that have only one adjacent riding, with the rest of the ridings having two adjacent ridings. A picture is shown below for N = 4 and p = 2 (which is also the sample data):

 Riding 1Riding 2Riding 3Riding 4
Votes for Party 11416
Votes for Party 25321

Note that Riding 1 and Riding 2 are adjacent, Riding 2 and 3 are adjacent, Riding 3 and 4 are adjacent. No other ridings are adjacent.

You have some financial backing that will let you bribe the people in charge of setting the boundaries of ridings: in particular, there is a fixed rate to merge two adjacent boundaries. When you merge two ridings, the votes of the ridings merge together, in the sense that the number of votes of party 1 is the sum of the votes of party 1 in each riding, and likewise for all other parties.

Your task is to merge the minimum number of regions such that the first party (your party!) has a majority of the ridings. Note that to win a riding, the party must have more votes than any other party in that riding. Also note that to have a majority of ridings, if there are Q ridings (where QN), then your party has won at least ⌊ Q ⁄ 2 ⌋ + 1 of the ridings.

输入解释

The first line of input will consist of the integer N. The second line of input will consist of the integer p. The next N lines will each contain p non-negative integers (where each integer is at most 10000), separated by one space character. Specifically, the p integers on each line are v1 v2 ... vp where v1 is the number of votes that party 1 will receive in this riding, v2 is the number of votes that party 2 will receive in this riding, etc. You may also assume that the total number of voters is less than 2 billion.

输出解释

One line, consisting of an integer, which gives the minimum number of ridings that need to be merged in order for the first party to win a majority of ridings. If the first party cannot win, even with any number of mergers, output -1.

输入样例
Sample Input 1
4
2
1 5
4 3
1 2
6 1

Sample Input 2
3
3
2 0 1
1 3 0
0 0 1
输出样例
Output for Sample Input 1
1

Output for Sample Input 2
-1

该题目是Virtual Judge题目,来自 北京大学POJ

题目来源 CCC 2007

源链接: POJ-3351

最后修改于 2020-10-29T06:59:24+00:00 由爬虫自动更新

共提交 0

通过率 --%
时间上限 内存上限
2000 65536