CodeForces 645 B.Mischievous Mess Makers(水~)
来源:互联网 发布:淘宝达人自媒体认证 编辑:程序博客网 时间:2024/05/16 14:44
Description
1~n按顺序排好组成一个序列,每次操作可以交换任意两个数位置,问经过不超过k次操作得到的新序列的逆序对数最大值
Input
两个整数n和k(1<=n,k<=1e5)
Output
输出移动k个数后得到新序列的最大逆序对数
Sample Input
5 2
Sample Output
10
Solution
至多经过n/2次交换就可以把序列变成n~1,所以首先令k=min(k,n/2),之后第i次把第i大的数和第i小的数交换,产生2*(n-2*i)+1个逆序对
Code
#include<cstdio>#include<iostream>#include<cstring>#include<algorithm>#include<cmath>#include<vector>#include<queue>#include<map>#include<set>#include<ctime>using namespace std;typedef long long ll;#define INF 0x3f3f3f3f#define maxn 1111int main(){ int n,k; while(~scanf("%d%d",&n,&k)) { ll ans=0; k=min(k,n/2); for(int i=1;i<=k;i++)ans+=2*(n-2*i)+1; printf("%I64d\n",ans); } return 0;}
0 0
- CodeForces 645 B.Mischievous Mess Makers(水~)
- CodeForces 645B Mischievous Mess Makers
- Codeforces 645B Mischievous Mess Makers 【逆序对】
- Codeforces 645B Mischievous Mess Makers【逆序数】
- Code Forces 645B Mischievous Mess Makers
- 题解:Mischievous Mess Makers
- (CROC 2016 - Elimination Round (Rated Unofficial Edition))B. Mischievous Mess Makers(贪心)
- 【CROC 2016 - Elimination RoundB】【贪心】Mischievous Mess Makers 全排列1到n交换k次最多逆序数
- CodeForces 628 B. New Skateboard(水~)
- CodeForces 626 B. Cards(水~)
- CodeForces 622 B. The Time(水~)
- CodeForces 606 B. Testing Robots(水~)
- CodeForces - 141B Hopscotch (模拟)水
- CodeForces 699 B. One Bomb(水~)
- 【CodeForces 570B】Simple Game(水)
- CodeForces 631 B.Print Check(水~)
- CodeForces 637 B.Chat Order(水~)
- CodeForces 733 B.Parade(水~)
- 查询不同班级,不同课程的平均成绩,按照平均成绩从大到小排序
- iOS TableView 默认选中某行
- cents7 mysql数据库安装和配置
- Java网络编程-IO多路复用(单线程)
- DOM性能优化 那些年踩过的坑
- CodeForces 645 B.Mischievous Mess Makers(水~)
- NULL和唯一约束UNIQUE的对应关系
- 容器日志处理及实现
- ul,ol,dl的区别
- MySQL实现计数器的表设计及实现
- 炫丽的Dialog弹框
- CSMA/CD
- InetAddress类的getByName()方法
- Android进阶之路