将数据从小到大排序,数据位置仅能两两交换,交换所用时间单位为交换的2个数据之和,求最少的时间

[复制链接]
查看11 | 回复1 | 2013-5-3 13:58:08 | 显示全部楼层 |阅读模式
这题比较高效的算法是用树状数组,nlogn时间解决。#include #include __int64 more[100120],num[100120],n,cnt,ss;void update(__int64 c){
__int64 x=c;
while(c<=n)
{
num[c]+=1;
more[c]+=x;
c+=(c&(-c));
}
return ;}void query(__int64 c){
cnt=0;
ss=0;
wh...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行