题目传送门(内部题118)


输入格式

  输入第一行是一个整数$n$,意义如以上所示。
  接下来有$2n+1$行,每行为两个正整数,第$i$行的两个正整数分别代表$A_i$和$B_i$。


输出格式

  如果无法选出$n+1$张卡片满足驴蛋蛋的要求,输出一个数$-1$。
  否则输出$n+1$行,每行有一个正整数,表示选出的卡片编号(从$1$开始)。如果有多解,输出任意一组解均可


样例

样例输入:

2
4 2
9 4
5 3
7 5
8 1

样例输出:

3
4
2


数据范围与提示

样例$1$解释:

  选择顺序随意,选择第二,三,四张三张卡片,$A$的总和为$21$,$B$的总和为$12$,均大于剩下的卡片$A,B$之和。

数据范围:

  共$10$组测试数据
  对于前$3$组测试数据有第$p$组中$N=2\times p+1$
  对于后$7$组测试数据有第$p$组中$N=p\times 10,000$
  对所有测试数据$1\leqslant A_i,B_i\leqslant 10^9$
  如果你通过某种方法$hack$掉了评测插件,你可以申请获得该测试点的分数=ω=


题解

随机划,没了……

随机打乱序列,取前$n+1$个,判断是够可行,不可行接着打乱,肯定不会存在$-1$。

千万记得开$long\ long$!!!

时间复杂度:$\Theta($玄学$)$。

期望得分:$30$分。

实际得分:$100$分。


代码时刻

#include<bits/stdc++.h>
using namespace std;
struct rec{int x,a,b;}e[300000];
int n;
long long suma,sumb;
int main()
{
srand(time(NULL));scanf("%d",&n);
for(int i=1;i<=2*n+1;i++)
{
e[i].x=i;
scanf("%d%d",&e[i].a,&e[i].b);
suma+=e[i].a;sumb+=e[i].b;
}
while(1)
{
long long A=0,B=0;
random_shuffle(e+1,e+2*n+2);
for(int i=1;i<=n+1;i++)
{
A+=e[i].a;
B+=e[i].b;
}
if(2*A-suma>0&&2*B-sumb>0)
{
for(int i=1;i<=n+1;i++)printf("%d\n",e[i].x);
return 0;
}
}
return 0;
}

rp++

[CSP-S模拟测试]:笨小猴(随机化)的更多相关文章

  1. 洛谷P1125——笨小猴(简易模拟)

    https://www.luogu.org/problem/show?pid=1125 题目描述 笨小猴的词汇量很小,所以每次做英语选择题的时候都很头疼.但是他找到了一种方法,经试验证明,用这种方法去 ...

  2. noip2008 笨小猴

    P1125 笨小猴 1.6K通过 3.7K提交 题目提供者该用户不存在 标签模拟2008NOIp提高组 难度普及- 提交该题 讨论 题解 记录   题目描述 笨小猴的词汇量很小,所以每次做英语选择题的 ...

  3. noip200805笨小猴

    试题描述: 笨小猴的词汇量很小,所以每次做英语选择题的时候都很头疼.但是他找到了一种方法,经试验证明,用这种方法去选择选项的时候选对的几率非常大!这种方法的具体描述如下:假设maxn是单词中出现次数最 ...

  4. [NOIP2008] 提高组 洛谷P1125 笨小猴

    题目描述 笨小猴的词汇量很小,所以每次做英语选择题的时候都很头疼.但是他找到了一种方法,经试验证明,用这种方法去选择选项的时候选对的几率非常大! 这种方法的具体描述如下:假设maxn是单词中出现次数最 ...

  5. 洛谷 P1125 笨小猴

    P1125 笨小猴 题目描述 笨小猴的词汇量很小,所以每次做英语选择题的时候都很头疼.但是他找到了一种方法,经试验证明,用这种方法去选择选项的时候选对的几率非常大! 这种方法的具体描述如下:假设max ...

  6. NOIP200805 笨小猴(低效算法)(一大桶水)【A006】

    [A006]笨小猴[难度A]—————————————————————————————————————————————————————————————— [题目要求] 笨小猴的词汇量很小,所以每次做英 ...

  7. 笨小猴 2008年NOIP全国联赛提高组

    题目描述 Description 笨小猴的词汇量很小,所以每次做英语选择题的时候都很头疼.但是他找到了一种方法,经试验证明,用这种方法去选择选项的时候选对的几率非常大! 这种方法的具体描述如下:假设m ...

  8. P1010 笨小猴【tyvj】

    /*=========================================================== P1010 笨小猴 描述 Description 笨小猴的词汇量很小,所以每 ...

  9. [TYVJ] P1010 笨小猴

    笨小猴 背景 Background NOIP2008复赛提高组第一题   描述 Description 笨小猴的词汇量很小,所以每次做英语选择题的时候都很头疼.但是他找到了一种方法,经试验证明,用这种 ...

随机推荐

  1. Codeforces 1221F. Choose a Square

    传送门 对于某个点 $(x,y)$ ,不妨设 $x<y$ 因为如果 $x>y$ 直接按 $y=x$ 对称一下即可 当且仅当正方形左下角 $(a,a)$ 满足 $a<=x$,右上角 $ ...

  2. C# 枚举转集合

    记录一下,方便自己下次使用. public class EnumHelper { /// <summary> /// 将枚举转为集合 /// </summary> /// &l ...

  3. luogu题解 P1099 【树网的核】树的直径变式+数据结构维护

    题目链接: https://www.luogu.org/problemnew/show/P1099 https://www.lydsy.com/JudgeOnline/problem.php?id=1 ...

  4. O009、KVM 网络虚拟化基础

    参考https://www.cnblogs.com/CloudMan6/p/5289590.html   网络虚拟化是虚拟化技术中最复杂的部分,学习难度最大.   但因为网络是虚拟化中非常重要的资源, ...

  5. 10 Python之文件操作

    1.文件操作 f = open(文件路径, mode="模式", encoding="编码") f: 文件句柄 文件的路径: 相对路径 相对于当前程序所在的文件 ...

  6. python之BeautifulSoup4

    阅读目录 1.Beautiful Soup4的安装配置 2.BeautifulSoup的基本用法 (1)节点选择器(tag) (2)方法选择器 (3)CSS选择器 (4)tag修改方法 Beautif ...

  7. Cocoapods私有库

    http://www.jianshu.com/p/d6a592d6fced 1.创建两个什么都不选的远程仓库:(私有公有都可,ReadMe\ignore都不选),一个放代码,一个放源(*.podspe ...

  8. LINUX修改path环境变量

    PATH用作运行某个命令的时候,本地查找不到某个命令或文件,会到这个声明的目录中去查找. 例如一般设定java的时候为了在任何目录下都可以运行bin文件夹下的命令.就将java的bin目录声明到pat ...

  9. Delphi 监视数据的值

  10. Linux课程学习 第三课

    生活中的许多事,并不是我们不能做到,而是我们不相信能够做到 https://www.linuxcool.com/ 一个很实用的Linux命令查询网站,并且还有发音 如果我们在系统终端中执行一个命令后想 ...