[bzoj1432]Function
2024-09-08 18:39:55
对于这n个函数,构成了$n(n-1)/2$个交点,对交点离散后,相邻两个交点间函数的编号构成了一个排列,而每一个排列第i个数所构成的段数就是第i层的段数
不妨设初始在-oo处这个排列是1,2,……,n,那么每经过一个交点可以看成是交换两个函数的编号,如果把先小后大看成逆序对,那么相当于是一个不断消除逆序对的过程,最终就变成了n,n-1,……2,1
而我们需要做得就是控制这$n(n-1)/2$次交换的顺序(显然可以任意调整),使得尽量少的变动第k个数,容易推得答案就是2min(k,n-k+1)(特判n=1的情况)
1 #include<bits/stdc++.h>
2 using namespace std;
3 int n,k;
4 int main(){
5 scanf("%d%d",&n,&k);
6 if (n==1)printf("1");
7 else printf("%d",2*min(k,n-k+1));
8 }
最新文章
- 虚拟机体验之 KVM 篇
- 【leetcode】3Sum (medium)
- oracle 10g在redhat5下的安装
- 利用HTML5云存储实现模拟对比投票效果
- 值不能为 null 或为空。参数名: linkText
- MySQL注入load_file常用路径
- 继电器Relay:ZZR08
- hive常见问题解决干货大全
- pyqt搜索指定信息 github处找到,谢谢这位朋友的帮助了
- 积累的VC编程小技巧之打印相关
- NSLineBreakMode
- CentOS7搭建Zookeeper环境
- [WeChall] Training: Crypto - Caesar I (Crypto, Training)
- vue实例属性之methods和computed
- Winform中使用WPF控件并动态读取Xaml
- [路径规划] VFF和VFH
- POJ2777-Count Color (线段树)
- vue项目经验:图形验证码接口get请求处理
- 阿里八八Alpha阶段Scrum(12/12)
- AndroidStudio怎样导入library项目开源库 - 转