当前位置: 首页 > news >正文

做电影网站违法么百度电脑版网页

做电影网站违法么,百度电脑版网页,如何写好网站建设方案,betheme wordpress题目链接:http://acm.hdu.edu.cn/showproblem.php?pid1394 题意:求某种规定序列中的最小逆序数。 递推比较最小那部分比较简单,就不说了。 主要想说:求逆序数可以用构建线段树的方法来做。其实思想和计数排序的思想差不多。每次处…

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1394

题意:求某种规定序列中的最小逆序数。

递推比较最小那部分比较简单,就不说了。

主要想说:求逆序数可以用构建线段树的方法来做。其实思想和计数排序的思想差不多。每次处理a[i]时,先统计一下已经被计数的前几个数的计数和。(比较的是值。)然后再更新这个计数和。这道题的数据范围和下标范围是一样的,所以可以直接做。

详见代码:

 

#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
#include <map>
#include <queue>
#include <algorithm>
using namespace std;#define Maxn 5005
#define lx x<<1
#define rx ((x<<1) + 1)
#define MID ((l + r)>>1)
int A[Maxn];
int S[Maxn<<2];void pushUp(int x)
{S[x] = S[lx] + S[rx];
}
void build(int l,int r,int x)
{if(l == r){S[x] = 0;return;}build(l,MID,lx);build(MID+1,r,rx);pushUp(x);
}
int query(int L,int R,int l,int r,int x)
{int ans = 0;if(L<=l && r<=R) return S[x];if(L<=MID) ans += query(L,R,l,MID,lx);if(R>=MID+1) ans += query(L,R,MID+1,r,rx);return ans;
}
void update(int p,int d,int l,int r,int x)
{if(l == r){S[x] +=d;return;}if(p<=MID) update(p,d,l,MID,lx);else update(p,d,MID+1,r,rx);pushUp(x);
}
int main()
{
#ifndef ONLINE_JUDGEfreopen("in.txt","r",stdin);
#endifint n;int sum,ans,temp;while(scanf(" %d",&n)!=EOF){sum = ans = 0;build(0,n-1,1);for(int i=0;i<n;i++){scanf(" %d",&A[i]);temp = query(A[i],n-1,0,n-1,1);sum += temp;update(A[i],1,0,n-1,1);}ans = sum;//递推求解,每次A[i]都在首位,则分为大于它的部分和小于它的部分。for(int i=0;i<n;i++){sum += n-1-A[i] - A[i];ans = min(ans,sum);}printf("%d\n",ans);}return 0;
}


但是如果数据范围和下标范围不是一个范围的话,我们就不能直接用这个方法 做了。。试想,如果一个数有最大可以有十亿,难道我们要开一个十亿大小的数组来标记么。。这显然不现实。所以我们要对数据进行离散话,毕竟数据的数量达不到那么大。比如说这道题:http://poj.org/problem?id=2299。也是求逆序数。数据的范围特别大。但是数量比较少。非常适合离散化。

关于什么是离散话,参考:http://www.matrix67.com/blog/archives/108 和 http://baike.baidu.com/view/3392254.htm

那么离散化+线段树我们就可以做这道题了(不要忘了用long long,int存储不下最终结果):

#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
#include <map>
#include <queue>
#include <algorithm>
using namespace std;#define Maxn 500005
#define lx x<<1
#define rx ((x<<1) + 1)
#define MID ((l + r)>>1)
#define LL long long
int rank[Maxn];
LL S[Maxn<<2];struct Node
{int val;int id;bool operator <(const Node &a) const{return val < a.val;}
} A[Maxn];void pushUp(int x)
{S[x] = S[lx] + S[rx];
}
void build(int l,int r,int x)
{if(l == r){S[x] = 0;return;}build(l,MID,lx);build(MID+1,r,rx);pushUp(x);
}
LL query(int L,int R,int l,int r,int x)
{LL ans = 0;if(L<=l && r<=R) return S[x];if(L<=MID) ans += query(L,R,l,MID,lx);if(R>=MID+1) ans += query(L,R,MID+1,r,rx);return ans;
}
void update(int p,int d,int l,int r,int x)
{if(l == r){S[x] +=d;return;}if(p<=MID) update(p,d,l,MID,lx);else update(p,d,MID+1,r,rx);pushUp(x);
}int main()
{
#ifndef ONLINE_JUDGEfreopen("in.txt","r",stdin);
#endifint n;LL ans = 0;int temp;while(scanf(" %d",&n)!=EOF){ans = 0;if(n == 0) break;build(0,n-1,1);for(int i=0;i<n;i++){scanf(" %d",&A[i].val);A[i].id = i;}sort(A,A+n);for(int i=0;i<n;i++) rank[A[i].id] = i;for(int i=0;i<n;i++){temp = rank[i];ans += query(temp+1,n-1,0,n-1,1);update(temp,1,0,n-1,1);}printf("%lld\n",ans);}return 0;
}

另外,求逆序数也可以用树状数组和归并排序来做。

 

用线段树属于平衡树做法的一种。

 

 

 

http://www.lbrq.cn/news/2807245.html

相关文章:

  • 网站建设与管理代码seo网站推广是什么意思
  • wordpress 支付百色seo外包
  • 北京外包seo公司seo流量工具
  • seo网站优化建议常用的网络推广方法有
  • 免费建站网站一区黄在线国产百度搜索工具
  • 做衣服网站百度优化服务
  • 高端html5网站建设织梦模板以下属于网站seo的内容是
  • 制作俄语网站图片优化软件
  • 做网站的靠什么挣钱给你一个网站怎么优化
  • 在服务器上布网站怎么做电商网站图片
  • 做网站计入什么科目2023年时政热点事件
  • 深圳网站建设 联雅网络java培训机构
  • 政府网站集约化建设合同怎样做推广是免费的
  • 开发网站用什么软件360浏览器网页版入口
  • mvc做网站用的多不多网页seo是什么意思
  • 平阳网站建设b站推广2023
  • 佛山市和城乡建设局网站重庆网站seo诊断
  • 济南定机票网站建设北京突发重大消息
  • 即墨网站优化爱站网反链查询
  • 音乐网站的音乐怎么做音乐试听自助建站免费建站平台
  • 贵阳生态文明建设委员会网站成全高清免费观看mv
  • 有学给宝宝做衣服的网站吗今日新闻大事件
  • 网站建设推广怎么做seo优化快排
  • 开个微网站需要什么淘宝店铺运营
  • 宁海县高质量营销型网站建设最火的推广平台
  • 做模板网站的公司深圳seo顾问
  • 网站备案注意什么国外免费网站域名服务器查询
  • 政府门户网站建设成人职业技能培训学校
  • 牛网站建设营销策划思路
  • 网站建设公司哪家好速找盛世传媒网络公司网站模板
  • RCE的CTF题目环境和做题复现第4集
  • kvcache比赛记录
  • 计算机内存中的整型存储奥秘、大小端字节序及其判断方法
  • 学习python第12天
  • 全栈开发:从LAMP到云原生的技术革命
  • postman接口自动化测试