UVALive 7512 November 11th 题解

思路:心态大崩,最多不讲了,最少应该是三个一组,比如......应该是.S..S.,这样占的最多

代码:

#include<set>
#include<map>
#include<cmath>
#include<queue>
#include<string>
#include<cstdio>
#include<cstring>
#include<sstream>
#include<algorithm>
typedef long long ll;
using namespace std;
const int maxn = 1000 + 10;
const int MOD = 1e9 + 7;
const int INF = 0x3f3f3f3f;
int row[maxn][maxn], cnt[maxn];
int getMax(int s){
    return (s + 1) / 2;
}
int getMin(int s){
    if(s % 3 == 0){
        return s / 3;
    }
    else if(s % 3 == 1){
        return (s + 2) / 3;
    }
    else return (s + 1) / 3;
}
int main(){
    int t, ca = 1;
    scanf("%d", &t);
    while(t--){
        int b, r, s;
        scanf("%d%d", &r, &s);
        scanf("%d", &b);
        memset(cnt, 0 ,sizeof(cnt));
        for(int i = 1; i <= b; i++){
            int x, y;
            scanf("%d%d", &x, &y);
            row[x][cnt[x]++] = y;
        }
        int Max = 0, Min = 0;
        for(int i = 0; i < r; i++){
            if(cnt[i] == 0){
                Max += getMax(s);
                Min += getMin(s);
            }
            else{
                sort(row[i], row[i] + cnt[i]);
                for(int j = 0; j < cnt[i]; j++){
                    if(j == 0){
                        int tmp = row[i][j] - 0;
                        Max += getMax(tmp);
                        Min += getMin(tmp);
                    }
                    else{
                        int tmp = row[i][j] - row[i][j - 1] - 1;
                        Max += getMax(tmp);
                        Min += getMin(tmp);
                    }
                }
                int tmp = s - 1 - row[i][cnt[i] - 1];
                Max += getMax(tmp);
                Min += getMin(tmp);
            }
        }
        printf("Case #%d: %d %d\n", ca++, Max, Min);
    }
    return 0;
}
/*
3
2 3
1
0 1
2 3
0
1 1
1
0 0
*/

原文地址:https://www.cnblogs.com/KirinSB/p/10325201.html

时间: 2024-11-14 07:19:05

UVALive 7512 November 11th 题解的相关文章

LA 7512 November 11th (思维漏洞)

题意:给定n*m个座椅,然后有b个是坏的,要做人,并且两个人不能相邻,问你最多坐多少人,最少坐多少人. 析:这个题其实并不难,只要当时一时没想清楚,结果就一直WA,就是最少的情况时,其实一个人可以占三个座位,而不是两个,就是这一点没想清楚,其他的就简单了. 代码如下: #include <cstdio> #include <string> #include <cstdlib> #include <cmath> #include <iostream>

November 11th 2016 Week 46th Friday

Keep in mind that neither success nor failure is ever final. 无论成败,皆非定局. The final is not coming, but we can predict it just based on the current situation. If we can't make some changes, the result may be already determined. Single is an opportunity

UVALive 2521 Game Prediction 题解

这个我上来把题目理解错了,我以为所有人的牌都是一样的,感觉这个题太麻烦了吧,而且题目样例过不去啊……后来发现理解错了,给出的数据是他一个人的数据,就是让我们求他一定能赢的轮数,所有的牌是固定的(1 - n×m),然后就去找当前最大值就可以了,不断的更新被打出的牌,就可以求出答案了. 代码如下: #include<stdio.h> #include<string.h> #include<algorithm> using namespace std; int data[50

任务调度框架-Quartz.Net

使用Quartz.Net依赖于以下3个组件:Common.Logging.dll.Common.Logging.Core.dll.Quartz.dll 简单封装 1 using Quartz; 2 using Quartz.Impl; 3 using System; 4 using System.Collections.Generic; 5 using System.Linq; 6 using System.Text; 7 using System.Threading.Tasks; 8 9 na

Quartz.NET 入门,带C#实例

概述 Quartz.NET是一个开源的作业调度框架,非常适合在平时的工作中,定时轮询数据库同步,定时邮件通知,定时处理数据等. Quartz.NET允许开发人员根据时间间隔(或天)来调度作业.它实现了作业和触发器的多对多关系,还能把多个作业与不同的触发器关联.整合了 Quartz.NET的应用程序可以重用来自不同事件的作业,还可以为一个事件组合多个作业. 参考 官方学习文档:http://www.quartz-scheduler.net/documentation/index.html 使用实例

转载:Quartz.NET 入门

分享自:http://www.cnblogs.com/jys509/p/4628926.html 概述 Quartz.NET是一个开源的作业调度框架,非常适合在平时的工作中,定时轮询数据库同步,定时邮件通知,定时处理数据等. Quartz.NET允许开发人员根据时间间隔(或天)来调度作业.它实现了作业和触发器的多对多关系,还能把多个作业与不同的触发器关联.整合了 Quartz.NET的应用程序可以重用来自不同事件的作业,还可以为一个事件组合多个作业. 参考 官方学习文档:http://www.q

Quartz Scheduler(2.2.1) - Usage of CronTriggers

Cron is a UNIX tool that has been around for a long time, so its scheduling capabilities are powerful and proven. The CronTrigger class is based on the scheduling capabilities of cron. CronTrigger uses “cron expressions”, which are able to create fir

ZOJ 3635 Cinema in Akiba[ 树状数组 ]

传送门:ZOJ 3635 Cinema in Akiba Time Limit: 3 Seconds      Memory Limit: 65536 KB Cinema in Akiba (CIA) is a small but very popular cinema in Akihabara. Every night the cinema is full of people. The layout of CIA is very interesting, as there is only on

quartz.net的使用

Quartz.NET简介 Quartz.NET作业调度框架是伟大组织OpenSymphony开发的quartz scheduler项目的.net延伸移植版本. Quartz.NET是一个开源的作业调度框架,非常适合在平时的工作中,定时轮询数据库同步,定时邮件通知,定时处理数据等. Quartz.NET允许开发人员根据时间间隔(或天)来调度作业.它实现了作业和触发器的多对多关系,还能把多个作业与不同的触发器关联.整合了 Quartz.NET的应用程序可以重用来自不同事件的作业,还可以为一个事件组合