F - Debate CodeForces - 1070F 思维
题目链接:https://vjudge.net/problem/CodeForces-1070F
具体思路:首先把所有的00放进去,然后对于10 和01 的取两个数目最小值t,排完序后将前t个加起来,然后再将剩余的看作一类,求一个最大加的数目就可以了。
关于为什么看作一类,第一个原因,剩下的的构成只能是只有00 ,或者(00,10)或者(01,00)或者(10)或者(01),这样就好分清楚剩下的最多加多少了,因为如果放入剩下的话,只能增加一种或者增加两种,所以取最大满足情况的前k项加起来就可以了。
AC代码:
#include<iostream>
#include<string>
#include<cstring>
#include<iomanip>
#include<stack>
#include<queue>
#include<cmath>
#include<algorithm>
#include<vector>
#include<map>
#include<stdio.h>
using namespace std;
# define inf 0x3f3f3f3f
# define ll long long
# define maxn 500000+100
int a1[maxn],a2[maxn],aa[maxn],ff[maxn];
int tot[maxn];
bool cmp(int t1,int t2)
{
return t1>t2;
}
int main()
{
int n;
scanf("%d",&n);
int t1,t2;
int num1=0,num2=0,num3=0,num4=0;
for(int i=1; i<=n; i++)
{
scanf("%d %d",&t1,&t2);
if(t1==11)
{
aa[++num1]=t2;
}
else if(t1==10)
{
a1[++num2]=t2;
}
else if(t1==1)
{
a2[++num3]=t2;
}
else if(t1==0)
{
ff[++num4]=t2;
}
}
sort(a1+1,a1+num2+1,cmp);
sort(a2+1,a2+num3+1,cmp);
sort(ff+1,ff+num4+1,cmp);
int sum=0;
int m=0;
int p1=0,p2=0;
int temp=min(num2,num3);
for(int i=1; i<=num1; i++)
{
sum+=aa[i];
}
m+=num1;
p1+=num1;
p2+=num1;
for(int i=1; i<=temp; i++)
{
sum+=a1[i];
sum+=a2[i];
}
m+=temp*2;
p1+=temp;
p2+=temp;
int num=0;
for(int i=temp+1; i<=num2; i++)
{
tot[++num]=a1[i];
}
for(int i=temp+1; i<=num3; i++)
{
tot[++num]=a2[i];
}
for(int i=1; i<=num4; i++)
{
tot[++num]=ff[i];
}
sort(tot+1,tot+num+1,cmp);
int t=min(min(min(p1*2-m,p2*2-m),m),num);//取可加的数目
for(int i=1; i<=t; i++)
{
sum+=tot[i];
}
printf("%d\n",sum);
return 0;
}
以后打组队赛得抓紧了,不能松懈,也尽量少和别的队交流,,,继续加油吧
F - Debate CodeForces - 1070F 思维的更多相关文章
- Debate CodeForces - 1070F (贪心)
Elections in Berland are coming. There are only two candidates — Alice and Bob. The main Berland TV ...
- codeforces 876 F. High Cry(思维)
题目链接:http://codeforces.com/contest/876/problem/F 题解:一道简单的思维题,知道最多一共有n*(n+1)/2种组合,不用直接找答案直接用总的组合数减去不符 ...
- Codeforces Round #548 (Div. 2) F splay(新坑) + 思维
https://codeforces.com/contest/1139/problem/F 题意 有m个人,n道菜,每道菜有\(p_i\),\(s_i\),\(b_i\),每个人有\(inc_j\), ...
- Codeforces Round #441 (Div. 2, by Moscow Team Olympiad) F. High Cry(思维 统计)
F. High Cry time limit per test 1 second memory limit per test 512 megabytes input standard input ou ...
- Codeforces 1060E(思维+贡献法)
https://codeforces.com/contest/1060/problem/E 题意 给一颗树,在原始的图中假如两个点连向同一个点,这两个点之间就可以连一条边,定义两点之间的长度为两点之间 ...
- Queue CodeForces - 353D (思维dp)
https://codeforces.com/problemset/problem/353/D 大意:给定字符串, 每一秒, 若F在M的右侧, 则交换M与F, 求多少秒后F全在M左侧 $dp[i]$为 ...
- Codeforces 424A (思维题)
Squats Time Limit: 1000MS Memory Limit: 262144KB 64bit IO Format: %I64d & %I64u Submit Statu ...
- newcoder F石头剪刀布(DFS + 思维)题解
题意:wzms 今年举办了一场剪刀石头布大赛,bleaves 被选为负责人. 比赛共有 2n 个人参加, 分为 n 轮, 在每轮中,第 1 位选手和第 2 位选手对战,胜者作为新的第 1 位选手, 第 ...
- codeforces 1244C (思维 or 扩展欧几里得)
(点击此处查看原题) 题意分析 已知 n , p , w, d ,求x , y, z的值 ,他们的关系为: x + y + z = n x * w + y * d = p 思维法 当 y < w ...
随机推荐
- Snapseed玩出新高度,分分钟让你成p图大神! 转
(,,・∀・)ノ゛嗨呀 小阔爱们! 不知道大家记不记得~ 上周我们的副条发了一篇: <看过他的照片,我才知道什么是创意摄影> 德国仅22岁超现实主义艺术家Justin Peters 创造了 ...
- javac和java的使用
java -Xmx128m -Dfile.encoding=gbk -cp ./;bin/;./*;lib/* com.qianlima.crawlOthers.Icp REM REM block e ...
- mysql(四)log
慢查询: https://blog.csdn.net/leshami/article/details/39829605 日志组成: https://blog.csdn.net/leshami/arti ...
- 当我们有多个类 继承同一个父类 这时候使用多态时候 可以使用该父类的类型做引用 不需要将object做引用
当我们有多个类 继承同一个父类 这时候使用多态时候 可以使用该父类的类型做引用 不需要将object做引用
- bzoj5039:[Jsoi2014]序列维护
做做bzoj上的新题(不存在的) 同bzoj1798: [Ahoi2009]维护序列,样例都一样的...我能想象到的唯一的新的考察意义就是模数是2e9不是1e9,于是加法的时候需要转long long ...
- 超链接提示效果jQuery+CSS+html
我们知道浏览器自带了超链接提示, 只需要在超链接中加入 title 属性就可以了. <a href="#" title="吉大砍人案致1死1伤 受害者死前大喊他手里 ...
- 学Python Django学得很迷茫,怎么办?-转自知乎
本人学生,零编程基础,在学习python的过程中越学越迷茫,感觉像无头苍蝇一样,来知乎取经,下面进入正题吧: 我是先看了中谷的python教学视频,然后跟着慕课网上的python教程把题 ...
- VS的IISExpress配置通过IP访问程序
打开C:\Users\用户\Documents\IISExpress\config\applicationhost.config 获取本地VS项目运行起来的端口,比如 然后在文本里搜索 24395 ...
- [HAOI2017]八纵八横 线性基
题面 题面 题解 观察到题目中的 "内陆经济环" 不好处理,因此我们把它拆成 "内陆经济链". 对于1号节点,我们创建一个它的复制节点n + 1号节点,这个节点 ...
- 【BZOJ2876】【NOI2012】骑行川藏(数学,二分答案)
[BZOJ2876][NOI2012]骑行川藏(数学,二分答案) 题面 BZOJ 题解 我们有一个很有趣的思路. 首先我们给每条边随意的赋一个初值. 当然了,这个初值不会比这条边的风速小. 那么,我们 ...