URAL 2021 Scarily interesting! (贪心+题意)

题意:给定两个队伍的每个人的得分,让你安排怎么比赛才能使得观众知道冠军的时间最长。

析:贪心,很简单,就是先开始总分高的先出最差劲的,总分低的先出最厉害的,这个题当时实在是读的不明白啊,WA了好多次。

代码如下:

#pragma comment(linker, "/STACK:1024000000,1024000000")
#include <cstdio>
#include <string>
#include <cstdlib>
#include <cmath>
#include <iostream>
#include <cstring>
#include <set>
#include <queue>
#include <algorithm>
#include <vector>
#include <map>
#include <cctype>
#include <cmath>
#include <stack>
#include <sstream>
#define debug() puts("++++");
#define gcd(a, b) __gcd(a, b)
#define lson l,m,rt<<1
#define rson m+1,r,rt<<1|1
#define freopenr freopen("in.txt", "r", stdin)
#define freopenw freopen("out.txt", "w", stdout)
using namespace std;

typedef long long LL;
typedef unsigned long long ULL;
typedef pair<int, int> P;
const int INF = 0x3f3f3f3f;
const LL LNF = 1e16;
const double inf = 0x3f3f3f3f3f3f;
const double PI = acos(-1.0);
const double eps = 1e-8;
const int maxn = 1e5 + 10;
const int mod = 1e9 + 7;
const int dr[] = {-1, 0, 1, 0};
const int dc[] = {0, 1, 0, -1};
const char *de[] = {"0000", "0001", "0010", "0011", "0100", "0101", "0110", "0111", "1000", "1001", "1010", "1011", "1100", "1101", "1110", "1111"};
int n, m;
const int mon[] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
const int monn[] = {0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
inline bool is_in(int r, int c){
  return r >= 0 && r < n && c >= 0 && c < m;
}

struct Node{
  int id, val;
  bool operator < (const Node &p) const{
    return val < p.val;
  }
};
vector<Node> v1, v2;

int main(){
  cin >> n;
  int sum1 = 0, sum2 = 0;
  for(int i = 1; i <= n; ++i){
    scanf("%d", &m);
    v1.push_back((Node){i, m});
    sum1 += m;
  }
  for(int i = 1; i <= n; ++i){
    scanf("%d", &m);
    v2.push_back((Node){i, m});
    sum2 += m;
  }
  sort(v1.begin(), v1.end());
  sort(v2.begin(), v2.end());
  if(sum1 > sum2) for(int i = 0; i < n; ++i) printf("%d %d\n", v1[i].id, v2[n-i-1].id);
  else  for(int i = 0; i < n; ++i) printf("%d %d\n", v1[n-i-1].id, v2[i].id);

  return 0;
}

  

时间: 2024-10-15 01:46:00

URAL 2021 Scarily interesting! (贪心+题意)的相关文章

ural 2021 Scarily interesting!

2021. Scarily interesting! Time limit: 1.0 secondMemory limit: 64 MB This year at Monsters University it is decided to arrange Scare Games. At the Games all campus gathers at the stadium stands, and the Scare program students divide into two teams to

J - Scarily interesting! URAL - 2021

This year at Monsters University it is decided to arrange Scare Games. At the Games all campus gathers at the stadium stands, and the Scare program students divide into two teams to compete in their abilities of scaring children. This year the two te

UVa 1612 Guess (贪心+题意)

题意:有 n 位选手参加编程比赛.比赛有3道题目,每个选手的每道题目都有一个评测之前的预得分(这个分数和选手提交程序的时间相关,提交的越早,预得分越大). 接下来 是系统评测.如果某道题未通过测试,则改题的实际得分为0分,否则得分等于预得分.得分相同的选手,ID小的排在前面. 问是否能给出所有3n个得分以及最后的实际名次.如果可能,输出最后一名的最高可能得分.每个预得分均为小于1000的非负实数,最多保留两位小数. 析:首先这个题是一个水题,一点也不难,我就卡在题意上了,卡了一下午,吃饭回来又读

URAL 2026 Dean and Schedule 贪心、双端队列(deque)、队列(queue)

C - Dean and Schedule Time Limit:1000MS     Memory Limit:65536KB     64bit IO Format:%I64d & %I64u Submit Status Practice URAL 2026 Description A new academic year approaches, and the dean must make a schedule of classes for first-year students. Ther

ural 1109,NYOJ 239,匈牙利算法邻接表

NYOJ 239:http://acm.nyist.net/JudgeOnline/problem.php?pid=239 ural 1109 :http://acm.timus.ru/problem.aspx?space=1&num=1109 NYOJ 月老的难题,是裸的最大匹配,很烦的是邻接阵超时.改用邻接表. #include <bits/stdc++.h> using namespace std; #define maxn 1005 vector <int> G[m

codeforces 482B. Interesting Array【线段树区间更新】

题目:codeforces 482B. Interesting Array 题意:给你一个值n和m中操作,每种操作就是三个数 l ,r,val.就是区间l---r上的与的值为val,最后问你原来的数组是多少?如果不存在输出no 分析:分析发现要满足所有的区间,而一个点上假如有多个区间的话,这个点的值就是所有区间或的值,因为只有这样才能满足所有区间的,把所有位上的1都保存下来了,那么可以发现用线段树来维护,但是那么怎么判断满不满足条件呢?可以也用线段树,更新了之后在整个维护一遍看看满不满足题意,如

URAL 1732 . Ministry of Truth KMP

题目来源:URAL 1732 . Ministry of Truth 题意:把第一个字符串处理一下 变成第二个 不要的字符改成下划线 空格不能改 思路:对第二个字符串单词分割 得到每一个单词后从第一个字符串中匹配 匹配成功 记录当前匹配的位置 然后下一个单词从x+2处在匹配 知道所有的单词都被匹配到 鄙视自己没想清楚写了半天 最后发现题目意思都错了 改了很多 最后代码和原来的完全不一样了 以后想清楚在写 样例 abcd和ab d输出ab_c abcx abcxx abcxx和abc abc ab

codves1052 地鼠游戏 贪心

codves1052 地鼠游戏 贪心 题意 有n只地鼠,一开始地鼠是全部钻出来的,每只地鼠有钻出来的持续时间,t,或者说在t秒会钻回去,不再钻出来以及打掉的分数,打一次地鼠我们需要一秒时间,求最多能获得的分值这题其实相当于 对于每一只地鼠 我们只能在 0--ti-1这段时间内打 然后我们可以将 ti消失时间排个序 然后从最大T 枚举下去 枚举到t时,我们把消失时间 > t 的地鼠加到大根堆里面,表示t 这秒可以打这些地鼠, 然后我们每一秒取堆中的最大值就行了 这样其实就是你存在堆中的表示你一直能

CF #365 (Div. 2) D - Mishka and Interesting sum 离线树状数组(转)

转载自:http://www.cnblogs.com/icode-girl/p/5744409.html 题目链接:CF #365 (Div. 2) D - Mishka and Interesting sum 题意:给出n个数和m个询问,(1 ≤ n, m ≤ 1 000 000) ,问在每个区间里所有出现偶数次的数异或的值. 思路:容易想到,把区间内的所有的数都异或得到的是出现奇数次的数的值,然后再异或该区间内的所有出现过的数(每个数只统计一次),得到的ans了. 第一个问题:得到询问区间的