Hiking 分类: 比赛 HDU 函数 2015-08-09 21:24 3人阅读 评论(0) 收藏
Hiking 
Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others) 
Total Submission(s): 932    Accepted Submission(s): 483 
Special Judge
Problem Description 
There are n soda conveniently labeled by 1,2,…,n. beta, their best friends, wants to invite some soda to go hiking. The i-th soda will go hiking if the total number of soda that go hiking except him is no less than li and no larger than ri. beta will follow the rules below to invite soda one by one: 
1. he selects a soda not invited before; 
2. he tells soda the number of soda who agree to go hiking by now; 
3. soda will agree or disagree according to the number he hears.
Note: beta will always tell the truth and soda will agree if and only if the number he hears is no less than li and no larger than ri, otherwise he will disagree. Once soda agrees to go hiking he will not regret even if the final total number fails to meet some soda’s will.
Help beta design an invitation order that the number of soda who agree to go hiking is maximum.
Input 
There are multiple test cases. The first line of input contains an integer T, indicating the number of test cases. For each test case:
The first contains an integer n (1≤n≤105), the number of soda. The second line constains n integers l1,l2,…,ln. The third line constains n integers r1,r2,…,rn. (0≤li≤ri≤n) 
It is guaranteed that the total number of soda in the input doesn’t exceed 1000000. The number of test cases in the input doesn’t exceed 600.
Output 
For each test case, output the maximum number of soda. Then in the second line output a permutation of 1,2,…,n denoting the invitation order. If there are multiple solutions, print any of them.
Sample Input
4 
8 
4 1 3 2 2 1 0 3 
5 3 6 4 2 1 7 6 
8 
3 3 2 0 5 0 3 6 
4 5 2 7 7 6 7 6 
8 
2 2 3 3 3 0 0 2 
7 4 3 6 3 2 2 5 
8 
5 6 5 3 3 1 2 4 
6 7 7 6 5 4 3 5
Sample Output
7 
1 7 6 5 2 4 3 8 
8 
4 6 3 1 2 5 8 7 
7 
3 6 7 1 5 2 8 4 
0 
1 2 3 4 5 6 7 8
Source 
2015 Multi-University Training Contest 6  
ZX写的优先队列,可是是弱弱不太会运算符重载
#include <map>
#include <list>
#include <climits>
#include <cmath>
#include <queue>
#include <stack>
#include <string>
#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <iostream>
#include <algorithm>
using namespace std;
#define eps 1e-9
#define LL long long
#define PI acos(-1.0)
#define INF 0x3f3f3f3f
#define CRR fclose(stdin)
#define CWW fclose(stdout)
#define RR freopen("input.txt","r",stdin)
#define WW freopen("output.txt","w",stdout)
const int Max = 100100;
const int Mod = 1000000007;
struct node
{
    int x;
    int y;
    int num;
}s[Max];
int vis[Max];
bool vist[Max];
bool cmp(node a,node b)
{
    if(a.x<b.x||(a.x==b.x&&a.y<b.y))
    {
        return true;
    }
    return false;
}
bool operator < (node a,node b)
{
    return a.y>b.y;
}
int main()
{
    int n;
    int T;
    scanf("%d",&T);
    while(T--)
    {
        scanf("%d",&n);
        memset(vist,false,sizeof(vist));
        for(int i=0;i<n;i++)
        {
            scanf("%d",&s[i].x);
            s[i].num=i+1;
        }
        for(int i=0;i<n;i++)
        {
            scanf("%d",&s[i].y);
        }
        sort(s,s+n,cmp);
        priority_queue<node>Q;
        int sum=0;
        int i=0;
        node a;
        while(1)
        {
            while(i<n&&s[i].x<=sum)
            {
                Q.push(s[i++]);
            }
            while(!Q.empty()&&Q.top().y<sum)
            {
                Q.pop();
            }
            if(!Q.empty())
            {
                a=Q.top();
                Q.pop();
                vis[sum++]=a.num;
                vist[a.num]=true;
            }
            else
            {
                break;
            }
        }
        printf("%d\n",sum);
        for(i=1;i<=n;i++)
        {
            if(!vist[i])
            {
                vis[sum++]=i;
            }
        }
        for(i=0;i<sum;i++)
        {
            if(i)
            {
                printf(" ");
            }
            printf("%d",vis[i]);
        }
        printf("\n");
    }
    return 0;
}
版权声明:本文为博主原创文章,未经博主允许不得转载。
Hiking 分类: 比赛 HDU 函数 2015-08-09 21:24 3人阅读 评论(0) 收藏的更多相关文章
- shell入门之函数应用                                                    分类:            学习笔记             linux             ubuntu             2015-07-10 21:48    77人阅读    评论(0)    收藏
		最近在学习shell编程,文中若有错误的地方还望各位批评指正. 先来看一个简单的求和函数 #!/bin/bash #a test about function f_sum 7 8 function f ... 
- Shell脚本编程入门(一)                                                    分类:            学习笔记             linux             ubuntu             2015-07-09 21:06    29人阅读    评论(0)    收藏
		最近在学shell,记录一下. if语句的使用: 1.判断两个参数大小 #!/bin/sh #a test about if statement a=10 b=20 if [ $a -eq $b ]; ... 
- 跨服务器修改数据                                                    分类:            SQL Server             2014-08-21 21:24    316人阅读    评论(0)    收藏
		说明: 两个服务器: 192.168.0.22 A 192.168.0.3 B 数据库备份在A上 数据库在B上 在A上写: exec sp_addlinkedserver 'ITSV ... 
- CocoaPods安装和使用教程                                                    分类:            ios技术             ios相关             2015-03-11 21:53    48人阅读    评论(0)    收藏
		目录 CocoaPods是什么? 如何下载和安装CocoaPods? 如何使用CocoaPods? 场景1:利用CocoaPods,在项目中导入AFNetworking类库 场景2:如何正确编译运行一 ... 
- Oracle EM错误,java.lang.Exception: Exception in sending Request :: null                                                       分类:            Oracle             2015-07-08 21:24    44人阅读    评论(0)    收藏
		操作系统:Win7 64bit Oracle: 10.2.0.1.0 很久没有使用EM了,打开一看,居然报错了,出现java.lang.Exception: Exception in sending ... 
- hdu 5882 Balanced Game                                                                                            2016-09-21 21:22             80人阅读              评论(0)              收藏
		Balanced Game Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) To ... 
- 基于ArcGIS for Server的服务部署分析                                                       分类:            ArcGIS for server             云计算             2015-07-26 21:28    11人阅读    评论(0)    收藏
		谨以此纪念去年在学海争锋上的演讲. ---------------------------------------------------- 基于ArcGIS for Server的服务部署分析 -- ... 
- 周赛-kiki's game                                                       分类:            比赛             2015-08-02 09:24    7人阅读    评论(0)    收藏
		kiki's game Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 40000/10000 K (Java/Others) Total S ... 
- 多校赛3- Solve this interesting problem                                                       分类:            比赛             2015-07-29 21:01    8人阅读    评论(0)    收藏
		H - Solve this interesting problem Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I ... 
随机推荐
- Android根据baidu Android定位SDK实现定位
			参考: http://www.open-open.com/lib/view/open1346982366162.html http://api.map.baidu.com/lbsapi/cloud/g ... 
- FOJ 2013 11 月赛
			这套题目还是比较吊的,由于我的沙茶,还是很多没有做出来- -! C:逆序数 D:呵呵 A:妈蛋,自己精度没弄好,想到之前GCC的要加eps,就WA了几次后交Visual C++过了!C(n,m)p^m ... 
- csuoj 1337: 搞笑版费马大定理
			http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1337 1337: 搞笑版费马大定理 Time Limit: 1 Sec Memory Limit ... 
- [转]Web程序员必须知道的 Console 对象里的九个方法
			一.显示信息的命令 01 1: <!DOCTYPE html> 02 2: <html> 03 3: <head> 04 4: <title&g ... 
- CCF真题之图像旋转
			201503-1 问题描述 旋转是图像处理的基本操作,在这个问题中,你需要将一个图像逆时针旋转90度. 计算机中的图像表示可以用一个矩阵来表示,为了旋转一个图像,只需要将对应的矩阵旋转即可. 输入格式 ... 
- Power Gating的设计(模块)
			Switching Fabric的设计: 三种架构:P沟道的switch vdd(header switch),N沟道的switch vss(footer switch),两个switch. 但是如果 ... 
- LDA-math-文本建模
			http://cos.name/2013/03/lda-math-text-modeling/ 4. 文本建模 我们日常生活中总是产生大量的文本,如果每一个文本存储为一篇文档,那每篇文档从人的观察来说 ... 
- 【pyQuery分析论坛】精英乒乓论坛
			In [25]: t= h('table') In [26]: In [26]: t('.mainbox').text() Out[26]: u'\u72b6\u6001 \u4e3b\u9898 \ ... 
- Mysql 的存储引擎,myisam和innodb的区别
			MyISAM 是非事务的存储引擎,innodb是支持事务的存储引擎. innodb的引擎比较适合于插入和更新操作比较多的应用,而MyISAM 则适合用于频繁查询的应用 . MyISAM --表锁,in ... 
- 关于undefined reference to `WSASocketA@24'问题的解决
			关于 Eclipse 开发C++ Socket ,在开发的过程中 用WinGW 平台编译, 示例server端: #include <winsock2.h> #include <m ... 
