题意

https://vjudge.net/problem/CodeForces-1007A

对一个序列重排,使得新的数比原来的数大对应的位置个数最多。

思路

举个栗子,比如1 2 2 3 3 3 3 4 5,那么对于一个数,肯定是用比他大的最小的去覆盖他,这样后面较大的数就有更多的机会被覆盖了。比如用2覆盖1,但不能用5覆盖1,因为这样的话4就不会被覆盖了。再考虑乱序的,比如 2 1 3 5 3 3 4 3 2,一样的,用2覆盖1,用3覆盖2,和有序的序列其实并无区别,所以我们直接拍个序,用双指针遍历即可。

代码

#include<bits/stdc++.h>
using namespace std;
#define inf 0x3f3f3f3f
#define ll long long
const int N=200005;
const int mod=1e9+7;
const double eps=1e-8;
const double PI = acos(-1.0);
#define lowbit(x) (x&(-x))
int a[N];
int main()
{
std::ios::sync_with_stdio(false);
int n;
cin>>n;
for(int i=1;i<=n;i++)
cin>>a[i];
sort(a+1,a+1+n);
int i=1,j=1;
for(;i<=n;i++)
{
if(a[i]>a[j])
{
j++;
}
}
cout<<j-1<<endl;
return 0;
}

  

CodeForces - 1007A (思维+双指针)的更多相关文章

  1. Codeforces Global Round 12 D. Rating Compression (思维,双指针)

    题意:给你一长度为\(n\)的数组,有一长度为\(k\ (1\le k \le n)\)的区间不断从左往右扫过这个数组,总共扫\(n\)次,每次扫的区间长度\(k=i\),在扫的过程中,每次取当前区间 ...

  2. Lyft Level 5 Challenge 2018 - Final Round (Open Div. 2) C. The Tower is Going Home(思维+双指针)

    https://codeforces.com/contest/1075/problem/C 题意 一个宽为1e9*1e9的矩阵中的左下角,放置一个车(车可以移动到同一行或同一列),放置一些墙,竖的占据 ...

  3. Codeforces 424A (思维题)

    Squats Time Limit: 1000MS   Memory Limit: 262144KB   64bit IO Format: %I64d & %I64u Submit Statu ...

  4. Pudding Monsters CodeForces - 526F (分治, 双指针)

    大意: n*n棋盘, n个点有怪兽, 求有多少边长为k的正方形内恰好有k只怪兽, 输出k=1,...,n时的答案和. 等价于给定n排列, 对于任意一个长为$k$的区间, 若最大值最小值的差恰好为k, ...

  5. Codeforces 1060E(思维+贡献法)

    https://codeforces.com/contest/1060/problem/E 题意 给一颗树,在原始的图中假如两个点连向同一个点,这两个点之间就可以连一条边,定义两点之间的长度为两点之间 ...

  6. Queue CodeForces - 353D (思维dp)

    https://codeforces.com/problemset/problem/353/D 大意:给定字符串, 每一秒, 若F在M的右侧, 则交换M与F, 求多少秒后F全在M左侧 $dp[i]$为 ...

  7. HDU 6103 Kirinriki (思维 双指针)

    Kirinriki Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total S ...

  8. codeforces 1244C (思维 or 扩展欧几里得)

    (点击此处查看原题) 题意分析 已知 n , p , w, d ,求x , y, z的值 ,他们的关系为: x + y + z = n x * w + y * d = p 思维法 当 y < w ...

  9. Two strings CodeForces - 762C (字符串,双指针)

    大意: 给定字符串$a$,$b$, $b$可以任选一段连续的区间删除, 要求最后$b$是$a$的子序列, 求最少删除区间长度. 删除一段连续区间, 那么剩余的一定是一段前缀和后缀. 判断是否是子序列可 ...

随机推荐

  1. PyCharm多行同时输入

    按住ALT,用鼠标在需要的位置点击添加光标,然后输入内容即可

  2. Red Hat 4.4.7-4上安装glances填大大大坑实录,我的内心是崩溃的!!!

    今天的任务是在公司的一台压力测试机上安装一个性能监控工具:glances 因为以前我已经多次安装和使用这个工具,我大意的以为整个过程是这样的: 分分钟搞定完事 然而 我们公司的服务器版本实在是太老了, ...

  3. 微信小程序支付功能讲解(2)

    小程序支付 业务流程时序图 官方文档 步骤: 1. Openid 在小程序初次加载的时候就已经获取(详情见 小程序登录) 2. 生成商户订单 1.商品信息由小程序端提供 2.提供支付统一下单接口所需参 ...

  4. 《3D_Deep_Learning_for_Robot_Perception.pdf》

    https://github.com/PrincetonVision/marvin

  5. vscode 笔记

    设置中文 查看 --> 命令面板 --> 输入: change display language , 安装 中文, 重启 vscode . markdown 转 pdf 安装 Markdo ...

  6. kindEditor 修改上传图片的路径

    压缩过的js类似

  7. 【计算机网络】UDP基础知识总结

    1. UDP概念相关 [!NOTE] UDP(User Datagram Protocol),又叫用户数据报协议. UDP是一个无连接的.不可靠.基于数据报的传输协议.UDP只是报文(报文可以理解为一 ...

  8. jenkins支持git分支发布

    https://blog.csdn.net/wc1695040842/article/details/102228804 核心就是需要安装一个Git Parameter 的插件结合使用. 如果同时有多 ...

  9. Django中的response

    render_to_response render_to_response('index.html', locals(),context_instance=RequestContext(request ...

  10. Solr java.sql.SQLException: null, message from server: "Host 'xxx' is not allowed to connect to this MySQL server

    在用solr从mysql导入数据的时候,因为linux和本机的数据库不在同一个ip段上, 又因为本地的mysql没有设置远程其它ip可以访问所以就报了如下错误 解决办法: 在mysql任意可以输入查询 ...