zoukankan      html  css  js  c++  java
  • UVaLive 7512 November 11th (思维漏洞)

    题意:给定n*m个座椅,然后有b个是坏的,要做人,并且两个人不能相邻,问你最多坐多少人,最少坐多少人。

    析:这个题其实并不难,只要当时一时没想清楚,结果就一直WA,就是最少的情况时,其实一个人可以占三个座位,而不是两个,就是这一点没想清楚,其他的就简单了。

    代码如下:

    #include <cstdio>
    #include <string>
    #include <cstdlib>
    #include <cmath>
    #include <iostream>
    #include <cstring>
    #include <set>
    #include <queue>
    #include <algorithm>
    #include <vector>
    #include <map>
    #include <cctype>
    using namespace std;
    typedef long long LL;
    typedef pair<int, int> P;
    const int INF = 0x3f3f3f3f;
    const double inf = 0x3f3f3f3f3f3f3f;
    const double eps = 1e-8;
    const int maxn = 1e6 + 5;
    const int dr[] = {0, 0, -1, 1};
    const int dc[] = {-1, 1, 0, 0};
    
    int n, m, q;
    vector<int> a[1010];
    
    int main(){
        int T, ca = 0;
        scanf("%d", &T);
        while(T--){
            scanf("%d %d %d", &n, &m, &q);
            for(int i = 0; i <= n; ++i)  a[i].clear();
            int tmp1, tmp2;
            while(q--){
                scanf("%d %d", &tmp1, &tmp2);
                a[tmp1 + 1].push_back(tmp2 + 1);
            }
            for(int i = 1; i <= n; ++i)  sort(a[i].begin(), a[i].end());
            int ans1 = 0, ans2 = 0;
            for(int line = 1; line <= n; ++line){
                if(a[line].empty()){
                    ans1 += (m+1) / 2;
                    ans2 += (m+2) / 3;
                    continue;
                }
                int head = 0, len = a[line].size();
                for(int i = 0; i < len; ++i){
                    int lur = a[line][i];
                    int cha = lur - head - 1;
    
                    ans1 += (cha+1) / 2;
                    ans2 += (cha+2) / 3;
                    head = lur;
                }
    
                int lur = m + 1;
                int cha = lur - head - 1;
                ans1 += (cha+1) / 2;
                ans2 += (cha+2) / 3;
            }
            printf("Case #%d: %d %d
    ", ++ca, ans1, ans2);
        }
        return 0;
    }
    
  • 相关阅读:
    HBase的完全分布式搭建
    研究Zookeeper的原理(二)
    研究Zookeeper的原理(一)
    zookeeper集群的搭建
    Hadoop之伪分布式安装
    MySQL忘记密码(终极解决方法,亲测有效,windows版本)
    MySQL重置密码(liunx)
    disconf---分布式配置管理平台的搭建(linux版本)
    zookeeper的安装(单机版)
    Redis搭建一主一从及哨兵模式(二)
  • 原文地址:https://www.cnblogs.com/dwtfukgv/p/5727024.html
Copyright © 2011-2022 走看看