一类有关序列的技巧问题
2017-04-22 17:26
253 查看
问题一:http://bestcoder.hdu.edu.cn/contests/contest_showproblem.php?cid=601&pid=1005
我们有一个数列A1,A2...An,你如今要求改动数量最少的元素,使得这个数列严格递增。当中不管是改动前还是改动后。每一个元素都必须是整数。
请输出最少须要改动多少个元素。
选取最长的符合要求的序列,然后把其它值改变就可以。怎样找到符合要求的序列?由于要递增,所以每一个数和它自身所在的位置有关,也就是自身占领了位置的权重,所以每一个数减去相应的位置的权即a[i]-i,还原出主要矛盾,然后取一条非降LIS就可以
问题二:http://codeforces.com/contest/549/problem/G
已知一个序列。问能否够经过相邻两个数的调换得到非降的序列,调换的代价是AiAj换成AjAi后。Aj增大1,Ai降低了1.
思路:仍然能够发现每一个数相应不同位置自身带有不同的权(潜在价值),所以每一个数a[i]+i后,是他们的总价值。sort后他们若严格递增再减去潜在价值后的序列一定非降,然后输出答案,否则无法调换完毕。
int main()
{
cin>>n;
for(int i=0;i<n;i++) cin>>a[i],a[i]+=i;
sort(a,a+n);
for(int i=0;i<n;i++) a[i]-=i;
for(int i=0;i<n-1;i++) if(a[i]>a[i+1]){
puts(":(");
exit(0);
}
for(int i=0;i<n;i++) printf("%d ",a[i]);
}
问题三:(忘记题源了)
x轴有n个点,分别相应坐标xi。问最少要把点累计移动多长的距离才干使他们成为间隔L的整齐排列。
思路:显然每一个点相应相应的潜在价值。每一个点的坐标Xi减L*i。即还原了主要矛盾。如今把这些新的点均移到某个同一点就可以。
显然移到他们的中位点产生的累计移动距离最小。
我们有一个数列A1,A2...An,你如今要求改动数量最少的元素,使得这个数列严格递增。当中不管是改动前还是改动后。每一个元素都必须是整数。
请输出最少须要改动多少个元素。
选取最长的符合要求的序列,然后把其它值改变就可以。怎样找到符合要求的序列?由于要递增,所以每一个数和它自身所在的位置有关,也就是自身占领了位置的权重,所以每一个数减去相应的位置的权即a[i]-i,还原出主要矛盾,然后取一条非降LIS就可以
int T; scanf("%d",&T); for(int cas=1;cas<=T;cas++) { scanf("%d",&n); int LIS; for(int i=1;i<=n;i++) scanf("%d",&a[i]),a[i]-=i; for(int i=1;i<=n;i++) dp[i]= inf; for(int i=1;i<=n;i++) *upper_bound(dp+1,dp+n+1,a[i])=a[i]; for(int i=1;i<=n;i++) if(dp[i]!=inf) LIS=i; printf("Case #%d:\n%d\n",cas,n-LIS); }
问题二:http://codeforces.com/contest/549/problem/G
已知一个序列。问能否够经过相邻两个数的调换得到非降的序列,调换的代价是AiAj换成AjAi后。Aj增大1,Ai降低了1.
思路:仍然能够发现每一个数相应不同位置自身带有不同的权(潜在价值),所以每一个数a[i]+i后,是他们的总价值。sort后他们若严格递增再减去潜在价值后的序列一定非降,然后输出答案,否则无法调换完毕。
int main()
{
cin>>n;
for(int i=0;i<n;i++) cin>>a[i],a[i]+=i;
sort(a,a+n);
for(int i=0;i<n;i++) a[i]-=i;
for(int i=0;i<n-1;i++) if(a[i]>a[i+1]){
puts(":(");
exit(0);
}
for(int i=0;i<n;i++) printf("%d ",a[i]);
}
问题三:(忘记题源了)
x轴有n个点,分别相应坐标xi。问最少要把点累计移动多长的距离才干使他们成为间隔L的整齐排列。
思路:显然每一个点相应相应的潜在价值。每一个点的坐标Xi减L*i。即还原了主要矛盾。如今把这些新的点均移到某个同一点就可以。
显然移到他们的中位点产生的累计移动距离最小。
相关文章推荐
- 一类有关序列的技巧问题
- 数学建模有关DNA序列k-mer index的问题
- HDU:4521 小明系列问题——小明序列(LIS-n*logn解法变形+思维+技巧)
- 学习向 Solaris 操作系统迁移 C 和 C++ 应用程序的有关问题与技巧
- 迷宫中的一类与转弯有关的问题 BFS||DFS hdoj1728,cf 793b ,hihocoder1519
- 面试跟序列有关的问题汇总
- 有关C++界面皮肤控件的问题!!
- 还是有关乱码问题
- 有关公文管理需要考虑的问题
- PHP学习技巧总结乱码显示问题,register_global为On的时候,图片上传数据库
- 有关一个 iframe 的问题,关于在 iframe 内的页面内登录成功后,如何由当前页直接转到另一个页面内?
- PHP 小技巧之(1)日期格式化问题
- 在asp.net中有关"弹出对话框"的问题
- 有关TrueDBGrid的问题向各位大虾请教
- 四川省人事厅 四川省信息产业厅关于2004年(下半年)计算机技术与软件专业技术资格(水平)考试有关问题的通知
- Nokia N-Gage使用技巧及问题解决之道
- 非COM环境下的接口编程--问题,技巧,应用(二)
- 有关反射的问题。
- 有关DataGrid显示数据的问题
- 一个有关扑克牌牌型分析的问题