博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
CodeForces - 367C Sereja and the Arrangement of Numbers
阅读量:4687 次
发布时间:2019-06-09

本文共 685 字,大约阅读时间需要 2 分钟。

题目大意:

要求构建一个长为n的数组,其中每两种不同的元素必须有一对是相邻的

然后给出m个交易,如果数组中有q[i]这个元素,就给w[i]元钱,求最多能得到多少钱?

具体思路:

先求出有x个不同元素的最小长度,然后给钱排个序就好啦

怎么求最小长度呢?可以把数组看成一个完全图的一条路径

最小长度大概就是一个欧拉路径啦,奇偶分类讨论一下就好啦

 

AC代码

#include
#define int long longusing namespace std;int a[5000000],b[5000000],x,y,i,j,n,m;main(){ scanf("%I64d%I64d",&n,&m); for(i=2;i<=100000;i++)if((i-1)%2==0)a[i]=i*(i-1)/2+1;else a[i]=i*(i-1)/2+1+(i-2)/2; for(i=1;i<=m;i++)scanf("%I64d%I64d",&x,&y),b[x]+=y; sort(b+1,b+1+1000000); int top=0; while(n>=a[top])top++; top--; int ans=0; for(i=1;i<=top;i++)ans+=b[1000000-i+1]; printf("%I64d",ans); return 0;}

 

转载于:https://www.cnblogs.com/Orange-User/p/8439738.html

你可能感兴趣的文章
fackbook的Fresco的Image Pipeline以及自身的缓存机制
查看>>
Casablanca发布:一个用C++访问云的本地类库
查看>>
[转载]Python调用Shell 之间变量传递
查看>>
IOS开发网络篇—监测网络状态
查看>>
SQL数据库还原时备份集中的数据库备份与现有的数据库不同的解决办法
查看>>
Myeclipse、eclipse安装lombok
查看>>
springboot-全局异常处理类
查看>>
document.ready和window.onload 加载区别及可能会出现问题
查看>>
C# .Net 中字典Dictionary<TKey,TValue>泛型类 学习浅谈
查看>>
SpringBoot项目如何进行打包部署
查看>>
1209实验三评论
查看>>
(RaspberryPi)树莓派系列 - 一、安装系统
查看>>
敏捷开发一千零一夜
查看>>
JavaScript与PHP中正则
查看>>
JAVA中的定时调度(Timer和TimerTask)
查看>>
20154312 曾林 Exp4恶意软件分析
查看>>
shit element ui
查看>>
Access-Control-Allow-Methods: OPTIONS & CORS
查看>>
UVa 10815 Andy's First Dictionary
查看>>
ubuntu搭建nodejs生产环境——快速部署手册
查看>>