zoukankan      html  css  js  c++  java
  • 七夕祭

     

     

     1 #include <bits/stdc++.h>
     2 using namespace std;
     3 typedef long long ll;
     4 const int N = 100010;
     5 int row[N], col[N], s[N], c[N];
     6 //s是前缀和数组
     7 ll work(int n, int a[]) {
     8     //先求前缀和
     9     for (int i = 1; i <= n; i++) {
    10         s[i] = s[i - 1] + a[i];
    11     }
    12     if (s[n] % n) {
    13         return -1;
    14     }
    15     int avg = s[n] / n;
    16     //求c数组
    17     c[1] = 0;
    18     for (int i = 2; i <= n; i++) {
    19         c[i] = s[i - 1] - (i - 1) * avg;
    20     }
    21     sort(c + 1, c + 1 + n);
    22     ll res = 0;
    23     for (int i = 1; i <= n; i++) {
    24         res += abs(c[i] - c[(n + 1) / 2]);
    25     }
    26     return res;
    27 }
    28 int main() {
    29     int n, m, cnt;
    30     cin >> n >> m >> cnt;
    31     for (int i = 0; i < cnt; i++) {
    32         int x, y;
    33         cin >> x >> y;
    34         row[x]++;
    35         col[y]++;
    36     }
    37     ll r = work(n, row);
    38     ll c = work(m, col);
    39     //返回-1说明无解
    40     if (r != -1 && c != -1) {
    41         cout << "both " << r + c << endl;
    42     } else if (r != -1) {
    43         cout << "row " << r << endl;
    44     } else if (c != -1) {
    45         cout << "column " << c << endl;
    46     } else {
    47         cout << "impossible" << endl;
    48     }
    49     return 0;
    50 }
  • 相关阅读:
    ubuntu老版本下载地址
    Device Tree
    内存映射与访问机制
    makefile要点
    lds文件
    测试风险问题探讨
    2 Player and N Coin
    google maps v3 添加自定义图标(marker,overlay)
    Evatech 机器人修剪器
    受蚂蚁启发的四足机器人链接在一起克服障碍
  • 原文地址:https://www.cnblogs.com/fx1998/p/13958658.html
Copyright © 2011-2022 走看看