CF140C New Year Snowmen

#include <bits/stdc++.h>
using namespace std;
#define gc getchar()
#define rep(i , x, y) for(int i = x;i <= y;++ i)
#define sep(i , x, y) for(int i = x;i >= y;-- i)
#define PII pair<int,int>
#define mk make_pair
#define fi first
#define se second
const int maxN = 1e5 + 7; inline int gi() {
int x = 0,f = 1;char c = gc;
while(c < '0' || c > '9') {if(c == '-')f = -1;c = gc;}
while(c >= '0' && c <= '9') {x = x * 10 + c - '0';c = gc;}
return x * f;
} int cnt[maxN];
int a[maxN];
priority_queue<PII> q;
struct Ans {
int x,y,z;
}b[maxN];
int n; void Read() {
n = gi();
rep(i , 1, n) a[i] = gi();
return;
} void Pre() {
sort(a + 1,a + n + 1);
rep(i , 1, n) {
int p = lower_bound(a + 1,a + n + 1,a[i]) - a;
cnt[p] ++;
}
for(int i = 1;i <= n;++ i) {
if(cnt[i]) q.push(mk(cnt[i] , i));
}
} void Solve() {
int k = 0;
while(q.size() >= 3) {
int x = q.top().se;q.pop();
int y = q.top().se;q.pop();
int z = q.top().se;q.pop();
b[++ k] = (Ans) {a[x] , a[y], a[z]};
if(b[k].z > b[k].y) swap(b[k].z , b[k].y);
if(b[k].y > b[k].x) swap(b[k].x , b[k].y);
if(b[k].z > b[k].y) swap(b[k].z , b[k].y);
cnt[x] --;if(cnt[x]) q.push(mk(cnt[x] , x));
cnt[y] --;if(cnt[y]) q.push(mk(cnt[y] , y));
cnt[z] --;if(cnt[z]) q.push(mk(cnt[z] , z)); }
printf("%d\n",k);
rep(i , 1, k) {
printf("%d %d %d\n",b[i].x,b[i].y,b[i].z);
}
} int main() {
Read();
Pre();
Solve();
return 0;
}

CF161B Discounts

#include <bits/stdc++.h>
using namespace std;
#define gc getchar()
#define rep(i , x, y) for(int i = x;i <= y;++ i)
#define sep(i , x, y) for(int i = x;i >= y;-- i)
#define PII pair<int,int>
#define fi first
#define se second
#define mk make_pair
#define dbug(x) cout << "DEbug: " << x << '\n'; inline int gi() {
int x = 0 ,f = 1;char c = gc;
while(c < '0' || c > '9') {if(c == '-')f = -1;c = gc;}
while(c >= '0' && c <= '9') {x = x * 10 + c - '0';c = gc;}
return x * f;
} int n, k;
const int maxN = 1e3 + 7; struct Node {
int id, c;
}a[maxN];
int t[maxN]; bool cmp(Node a, Node b) {
return a.c > b.c;
} bool vis[maxN];
int ans[maxN]; void Solve() {
double ans1 = 0;
int n = gi(), k = gi();
for(int i = 1;i <= n;++ i) {
a[i].id = i;
a[i].c = gi();
ans1 += a[i].c;
t[i] = gi();
}
sort(a + 1, a + n + 1,cmp);
int num = 0;
for(int i = 1;i <= n;++ i) {
if(num < k - 1 && t[a[i].id] == 1) {
vis[i] = true;
ans[++ num] = a[i].id;
ans1 -= 1.0 * a[i].c / 2;
}
}
bool flag = false;
int minn = 0x7fffffff;
for(int i = 1;i <= n;++ i) {
if(!vis[i]) {
if(t[a[i].id]== 1) {
flag = true;
minn = min(minn ,a[i].c);
}
}
}
int tot = num;
for(int i = 1;i <= n;++ i) {
if(!vis[i]) {
if(tot == k - 1) break;
tot ++;
ans[tot] = a[i].id;
vis[i] = true;
}
}
if(flag) ans1 -= 1.0 * minn / 2;
cout << ans1 << '\n';
for(int i = 1;i < k;++ i) {
printf("1 %d\n",ans[i]);
}
int cnt = 0;
for(int i = 1;i <= n;++ i) {
if(!vis[i]) cnt ++;
}
printf("%d ",cnt);
for(int i = 1;i <= n;++ i) {
if(!vis[i]) {
printf("%d ",a[i].id);
}
}
} int main() {
Solve();
return 0;
}

P1842 奶牛玩杂技

#include <bits/stdc++.h>
using namespace std;
#define gc getchar()
#define rep(i , x, y) for(int i = x;i <= y;++ i)
#define sep(i , x, y) for(int i = x;i >= y;-- i)
#define int long long
const int inf = 0x7fffffff; inline int gi() {
int x = 0,f = 1;char c = gc;
while(c < '0' || c > '9') {if(c == '-')f = -1;c = gc;}
while(c >= '0' && c <= '9') {x = x * 10 + c - '0';c = gc;}
return x * f;
}
const int maxN = 100000 + 7; struct Node {
int w, s;
}a[maxN]; bool cmp(Node a , Node b) {return a.s + a.w > b.s + b.w;} signed main() {
int n = gi();
rep(i , 1, n) {
a[i].w = gi();
a[i].s = gi();
}
sort(a + 1 , a + n + 1, cmp);
int ans = -inf;
int sum = 0;
sep(i , n, 1) {
ans = max(ans , sum - a[i].s);
sum += a[i].w;
}
printf("%lld",ans);
return 0;
}

钠 GZY整理贪心的更多相关文章

  1. nyoj 1216——整理图书 CF 229D—— Towers——————【dp+贪心】

    整理图书 时间限制:3000 ms  |  内存限制:65535 KB 难度:5   描述 小明是图书鹳狸猿,他有很多很多的书堆在了一起摆在了架子上,每摞书是横着放的,而且每摞书是订好的 是一个整体, ...

  2. 贪心整理&一本通1431:钓鱼题解

    题目传送 (其实有一个更正经的题解) 看了许久,发现这题貌似就是一个动态规划啊,但毕竟是贪心题库里的题,还是想想用贪心解吧. 经过(借鉴大佬思路)十分复杂的思考后,终于理解出了这题的贪心思路.该题的难 ...

  3. CodeForces - 721D 贪心+优先队列(整理一下优先队列排序情况)

    题意: 给你一个长度为n的数组,你可以对其中某个元素加上x或者减去x,这种操作你最多只能使用k次,让你输出操作后的数组,且保证这个数组所有元素的乘积尽可能小 题解: 在这之前我们要知道a*b>a ...

  4. [Java面经]干货整理, Java面试题(覆盖Java基础,Java高级,JavaEE,数据库,设计模式等)

    如若转载请注明出处: http://www.cnblogs.com/wang-meng/p/5898837.html   谢谢.上一篇发了一个找工作的面经, 找工作不宜, 希望这一篇的内容能够帮助到大 ...

  5. BZOJ 题目整理

    bzoj 500题纪念 总结一发题目吧,挑几道题整理一下,(方便拖板子) 1039:每条线段与前一条线段之间的长度的比例和夹角不会因平移.旋转.放缩而改变,所以将每条轨迹改为比例和夹角的序列,复制一份 ...

  6. 背包dp整理

    01背包 动态规划是一种高效的算法.在数学和计算机科学中,是一种将复杂问题的分成多个简单的小问题思想 ---- 分而治之.因此我们使用动态规划的时候,原问题必须是重叠的子问题.运用动态规划设计的算法比 ...

  7. Android面试题整理【转载】

      面试宝典(5)  http://www.apkbus.com/android-115989-1-1.html 面试的几个回答技巧 http://blog.sina.com.cn/s/blog_ad ...

  8. 【贪心+一点小思路】Zoj - 3829 Known Notation

    借用别人一句话,还以为是个高贵的dp... ... 一打眼一看是波兰式的题,有点懵还以为要用后缀表达式或者dp以下什么什么的,比赛后半阶段才开始仔细研究这题发现贪心就能搞,奈何读错题了!!交换的时候可 ...

  9. HDU--3466(0-1背包+贪心/后效性)

    题意是: 给你一些钱 m ,然后在这个国家买东西, 共有 n 件物品,每件物品有  价格 P    价值 V    还有一个很特别的属性 Q, Q 指 你如过想买这件物品 你的手中至少有这钱Q . 虽 ...

随机推荐

  1. Sqoop import导入表时报错java.lang.ClassNotFoundException: org.json.JSONObject

    报错原因:sqoop缺少java-json.jar包. 解决方案:一. 下载java-json.jar包地址:https://download.csdn.net/download/qq_2213643 ...

  2. Asp.Net 技术

    Asp.Net 技术Nuget 管理器Spring.NET 框架Spring.core 包 微服务Consul .NetCore 框架:Spring.net Nhibernate 框架Dapper.n ...

  3. 详细的Hadoop的入门教程-完全分布模式Fully-Distributed Operation

    1. 前面在伪分布模式下已经创建了一台机器,为了统一命名,hostname更名为hadoop01.然后再克隆2台机器:hadoop02. hadoop03:将第一台机器hadoop01上的伪分布停止, ...

  4. HTTP协议中GET和POST

    1. get 它用于获取信息,注意,他只是获取.查询数据,也就是说它不会修改服务器上的数据,从这点来讲,它是数据安全的,而稍后会提到的Post它是可以修改数据的,所以这也是两者差别之一了 2. pos ...

  5. SpringBoot 通过配置禁用swagger

    转自:https://blog.csdn.net/weixin_37264997/article/details/82762050 一.序言 在生产环境下,我们需要关闭swagger配置,避免暴露接口 ...

  6. AES加密解密工具类封装(AESUtil)

    package club.codeapes.common.utils; import org.springframework.util.Base64Utils; import javax.crypto ...

  7. Springboot 2.1.1.RELEASE 版本 session保存到MySQL里面

    1,pom.xml添加依赖: <!-- 数据库session管理 --> <dependency> <groupId>org.springframework.ses ...

  8. Nginx的特性功能-反向代理、负载均衡、缓存、动静分离、平滑升级

    反向代理 nginx配置文件 events  {   }  事件驱动 httpd  {   }   关于httpd相关的配置 server {  }  定义虚拟主机 location {   }    ...

  9. 分享一个批量修改文件编码的python脚本

    分享一个自己编写的递归查找子目录,将所有cpp文件编码修改为utf-8编码格式的小脚本 #i!/usr/bin/env python3 # -*- coding:utf-8 -*- import os ...

  10. js 正则表达式2

    对于某些特殊的字符,我们 必须转义一下才可以使用.(注意一点,我们使用那些需要转义的字符是通过"\"+相应的字符来构成的,记住是"\",而不也是"/& ...