The Desire of Asuna

Time Limit: 3000/1000MS (Java/Others)     Memory Limit: 65535/65535KB (Java/Others)

Submit Status

ZYHAzwraith用自己心爱的键盘换来了很多支漂亮的荧光棒!

一天,他准备用一条由很多个莹光圈相互连接而成的荧光链送给女神Asuna。每个荧光圈只能由一支荧光棒首尾相接成一个环得到。现在他手中有 n 条荧光链,为了最后把这些链拼接成一条链,每次他可以选择任意一条荧光链中的任意一个荧光圈并用魔法把这个圈断开,然后用这个断开的荧光圈去连接任意两条荧光链使之成为一条。

现在ZYHAzwraith想知道最少需要多少次才能把这些荧光链链拼接成一条长链?

Input

第一行是一个整数 n ( 1≤n≤2000),
表示有 n 条荧光链。
接下来一行有 n 个数,每个数 ai (1≤ai≤105)表示第 i 条链由 ai 个荧光圈相互连接

Output

输出一个整数表示最少的次数。

Sample input and output

Sample Input Sample Output
3
3 2 1
1
3
4 3 4
2

Hint

第一组样例解释: 

Source

第七届ACM趣味程序设计竞赛第三场(正式赛)

贪心。





我们选择长度减小的链,一定是可选的,并且长度最小的链。





我们选择合并的链,一定是当前长度最大的两条链。





为什么?





假设所有的链的长度都是无限长,这道题的答案毫无疑问就是 n-1 。





但是长度并不是无限长的,所以我们可以通过 使得链长度-1 的这个操作,去除一些链,使得答案比 n-1 小





很容易可以看出,我们之前的贪心策略,可以使得尽量多的链在 长度-1 这个阶段就被消去了。





所以这道题就结束了。
<span style="font-family:KaiTi_GB2312;font-size:18px;">#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
int a[2005];
int main()
{
int n;
while(~scanf("%d",&n))
{
for(int i=1;i<=n;i++)
scanf("%d",&a[i]);
sort(a+1,a+n+1);
int l=1,r=n,ans=0;
while(l<r)
{
a[l]--;
r--;
ans++;
a[r]+=a[r+1]+1;
if(a[l]==0)
l++;
}
cout<<ans<<endl;
}
return 0;
}</span><span style="font-family:Open Sans, Helvetica Neue, Helvetica, Helvetica, Arial, sans-serif;font-size:32px;">
</span>

CDOJ 1263 The Desire of Asuna 贪心的更多相关文章

  1. UESTC--1263--The Desire of Asuna(贪心)

    The Desire of Asuna Time Limit: 1000MS   Memory Limit: 65535KB   64bit IO Format: %lld & %llu Su ...

  2. CDOJ 1251 谕神的密码 贪心

    谕神的密码 Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.uestc.edu.cn/#/problem/show/1251 Descr ...

  3. cdoj 排名表 拓扑排序 排名输出 贪心

    //并不理解为什么需要反向建图,由大到小倒序确定排名.感觉正向由小到大和反向由大到小应该是一样的. 解:拓排+贪心,反向建边,先找排名靠后的(now,不知道为什么) #include<cstdi ...

  4. cdoj 1334 郭大侠与Rabi-Ribi 贪心+数据结构

    郭大侠与Rabi-Ribi Time Limit: 3000/1000MS (Java/Others)     Memory Limit: 65535/65535KB (Java/Others) Su ...

  5. cdoj 1255 斓少摘苹果 贪心

    斓少摘苹果 Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.uestc.edu.cn/#/problem/show/1255 Descr ...

  6. CDOJ 第七届ACM趣味程序设计竞赛第三场(正式赛) 题解

    宝贵资源 题目连接: http://acm.uestc.edu.cn/#/problem/show/1265 题意 平面上给n个点(n<=1000),要求找一个面积最小的正方形,将所有的点都囊括 ...

  7. CDOJ 1502 string(简单贪心)

    题目大意:原题链接 相邻两个字母如果不同,则可以结合为前一个字母,如ac可结合为a.现给定一个字符串,问结合后最短可以剩下多少个字符串 解体思路:简单贪心 一开始读题时,就联想到之前做过的一道题,从后 ...

  8. cdoj 1334 郭大侠与Rabi-Ribi Label:贪心+数据结构

    郭大侠与Rabi-Ribi Time Limit: 3000/1000MS (Java/Others)     Memory Limit: 65535/65535KB (Java/Others) 最近 ...

  9. BZOJ 1692: [Usaco2007 Dec]队列变换 [后缀数组 贪心]

    1692: [Usaco2007 Dec]队列变换 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 1383  Solved: 582[Submit][St ...

随机推荐

  1. http请求之of_ordering_json

    //Public function of_ordering_json (string as_json,ref string as_jsons[]) returns integer //string a ...

  2. signalfx的中间件监控指标so cool

    signalfx的中间件监控指标so cool www.jianshu.com   对于我们做运维的来说,监控是最基本的东西,不过在初创公司很多计划是跟不上项目架构变化的,项目中会不断加入各种服务和组 ...

  3. string库

    Lua字符串库小集 1. 基础字符串函数: 字符串库中有一些函数非常简单,如: 1). string.len(s) 返回字符串s的长度: 2). string.rep(s,n) 返回字符串s重复n次的 ...

  4. Sublime Text 3配置浏览默认路径为localhost

    1.在 Sublime Text 3 中,安装 SideBarEnhancements 侧边栏增强插件.(注意:安装插件之前需要安装包管理工具,参考这里) 2.SideBarEnhancements ...

  5. golang(8):channel读写 & goroutine 通信

    goroutine 1.进程和线程 A. 进程是程序在操作系统中的一次执行过程,系统进行资源分配和调度的一个独立单位 B. 线程是进程的一个执行实体,是CPU调度和分派的基本单位,它是比进程更小的能独 ...

  6. Linux学习笔记:7个ssh命令用法

    通过远程控制管理多台服务器. 远程工具:telnet.ssh.vnc ssh采用密文的传输方式,简单安全.Secure Shell 缩写 SSH. 1.基本用法 ssh 192.168.1.1 默认使 ...

  7. dhcpd.conf配置文件几例

    例1   ddns-update-style interim; ignore client-updates; subnet 192.168.222.0 netmask 255.255.255.0 { ...

  8. 06-【servletconfig、servletContext 】

    ServletConfig.ServletContext 1.ServletConfig获取web.xml中的配置信息:java代码: @Override public void init(Servl ...

  9. 关于一个指针的题目解析(a,&a,(int*)&a,(int*)((char*)&a + 4))

    #include <stdio.h> void main() { ] = {}; printf(]); printf("\n"); printf("a[1] ...

  10. python网络编程:socket半连接池、UDP通讯模板

    一.TCP半连接池原理 二.UDP通讯 三.UDP聊天 四.UDP聊天2 五.UDP会粘包吗 六.UDP总结 七.UDP与TCP对比 一.TCP半连接池原理 客户端 import socket cli ...