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. java基本数据类型的变量

    一.整型变量 短整型(short).整型(int)和长整型(long),它们都可以定义整型变量,但是由于分配的内存空间不同,所能表示的数据的长度也不同. 我们可以定义并初始化一个整型变量: int a ...

  2. 记录一次使用NPOI遇到的问题

    在.net 下一般使用NPOI操作Excel相信大家都不陌生,但是本人在操作过程中遇到一个比较奇怪的问题,特写此博客记录与大家分享. 例子是使用Winform,点击按钮时弹出打开文件对话框,然后选择文 ...

  3. HeRaNO's NOIP CSP Round Day 2 T1 building

    考试的时候居然睡着了... T1的60分做法很明显,3^n枚举每个状态并进行验证 (考试剩十分钟结束的时候我开始打,,不到五分钟就写完了? 暴力(60分) #include<bits/stdc+ ...

  4. ex_gcd求不定方程的最小正整数解

    #include<bits/stdc++.h> using namespace std; int gcd(int a,int b) {return b?gcd(b,a%b):a;} int ...

  5. 事件绑定+call apply指向

    JS高级 事件—— 浏览器客户端上客户触发的行为都称为事件 所有事件都是天生自带的,不需要我们去绑定,只需要我们去触发,通过obj.事件名=function(){ } 事件名:onmousemove: ...

  6. Mybatis架构与原理

    一.简介 MyBatis 是一款优秀的持久层框架.MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集 Mybatis可以将Sql语句配置在XML文件中,避免将Sql语句硬编码 ...

  7. 22、vue实现随机四位数验证码

    效果图: 1.新建生成验证码的组件Sidentify.vue(代码如下): <template> <div class="s-canvas"> <ca ...

  8. Java 面向对象(九)内部类

    一.概述 1.引入 类的成员包括: 1.属性:成员变量2.方法:成员方法3.构造器4.代码块5.内部类:成员内部类 其中 1.2是代表这类事物的特征   其中3.4是初始化类和对象用的   其中5协助 ...

  9. 理解 spring 事务传播行为与数据隔离级别

    事务,是为了保障逻辑处理的原子性.一致性.隔离性.永久性. 通过事务控制,可以避免因为逻辑处理失败而导致产生脏数据等等一系列的问题. 事务有两个重要特性: 事务的传播行为 数据隔离级别 1.事务传播行 ...

  10. 第一册:lesson 131.

    原文: Don't be so sure. question:What's the problem about deciding on a holiday. Where are you going t ...