首页 > 其他分享 >【树状数组】 HDOJ 3743 Frosh Week

【树状数组】 HDOJ 3743 Frosh Week

时间:2023-07-05 22:32:32浏览次数:33  
标签:Week int LL ans 3743 maxn Frosh include define


简单的树状数组求逆序数,不过要用到离散化。。。。刚开始没用离散化,就跪了。。

【树状数组】 HDOJ 3743 Frosh Week_#define

【树状数组】 HDOJ 3743 Frosh Week_#define

【树状数组】 HDOJ 3743 Frosh Week_#define

【树状数组】 HDOJ 3743 Frosh Week_#define

#include <iostream>
#include <sstream>
#include <algorithm>
#include <vector>
#include <queue>
#include <stack>
#include <map>
#include <set>
#include <bitset>
#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <cmath>
#include <climits>
#define maxn 1000005
#define eps 1e-7
#define mod 1000000007
#define INF 99999999
#define lowbit(x) (x&(-x))
typedef long long LL;
using namespace std;

LL tree[maxn];
struct node
{
	int number;
	LL v;
}tmp[maxn];
int num[maxn];
void add(int x, int c)
{
	for(int i=x;i<maxn;i+=lowbit(i)) tree[i]+=c;
}
int sum(int x)
{
	int ans=0;
	for(int i=x;i>0;i-=lowbit(i)) ans+=tree[i];
	return ans;
}
int cmp(node a, node b)
{
	return a.v<b.v;
}
int comp(node a, node b)
{
	return a.number<b.number;
}
int main(void)
{
	int n, i;
	LL ans;
	while(scanf("%d",&n)!=EOF){
		ans=0;
		memset(tree, 0, sizeof tree);
		for(i=0;i<n;i++){
			tmp[i].number=i+1;
			scanf("%I64d",&tmp[i].v);
		}
		sort(tmp, tmp+n, cmp);
		for(i=0;i<n;i++) tmp[i].v=i+1;
		sort(tmp, tmp+n, comp);
		for(i=0;i<n;i++) num[i+1]=tmp[i].v;
		for(i=n;i>=1;i--){
			ans+=sum(num[i]);
			add(num[i], 1);
		}
		printf("%I64d\n", ans);
	}
}




标签:Week,int,LL,ans,3743,maxn,Frosh,include,define
From: https://blog.51cto.com/u_8692734/6636178

相关文章

  • 考研周记-week19
    6.27~7.2记录一下本周的考研进度情况英语本周继续单词的复习。数学数学方面,本周开始了强化阶段的学习,学完了极限和一元微分学的定义,因为24版的18讲题目过少,即使加上1000题题量也不大,所以准备买本880,再加上660,补充题量,加上手上还有一本真题。专业课本周操作系统结束了进程的......
  • week2 day1
    今天:早上八点起来学车,进行科目三的学习从九点一直到下午四点,都在驾校耐受高温 下午回家洗了个澡,理了个发。理的有点短,还能说过去;因为头发短,染发计划推迟晚上打了个车回老家,如果不出去吃饭就在家学习一下Java敲一下ptaor出去吃饭,回来打游戏睡觉。明天将揭晓今晚干了什......
  • 2024备考408Week16
    一、本周总结:使用时间:(离每周目标40h还差10h,差距还很大!)总计30h,数学12h50min,专业课12h9min,英语3h40min,政治1h21min。二、存在问题:1.数学、专业课(DS+OS+CO+CN)做题训练不够,思考不够深入,计算不够熟练和准确,后期一定要开始加强了;2.碎片化时间和整块时间没有合理安排,碎片化时间应该安排......
  • week1
    这周一直在专心学车,就差科三科四了,马上就拿到驾照了!!!!当然闲暇之余也在学习java 虽然没有坚持到一天一小时,但我后续一定会补上努力跟上节奏初尝Java  这是跟着视频学习用Javac编译成功并用Java运行的可以看到犯了很多错误感觉Java比c++繁琐下载了eclipse但是......
  • 考研周记-week18
    准时的周记6.19~6.26记录一下本周的考研进度情况英语本周继续单词的复习。数学数学方面,本周结束了基础30讲的所有学习内容,并且完成二刷,进行了一次模拟考试,考的不是很理想,希望强化阶段再接再厉专业课本周操作系统复习到了pv操作的部分。 其他本周因为宿舍搬迁的原因,所......
  • 2024备考Week15
    一、本周总结:使用时间:(达到每周目标35h)总计35h,数学13h11min,专业课9h48min,英语4h37min,政治5h48min。二、存在问题:1.数学、专业课(DS+OS+CO+CN)做题训练不够,思考不够深入,计算不够熟练和准确,后期一定要开始加强了;2.碎片化时间和整块时间没有合理安排,碎片化时间应该安排英语/政治,整块时......
  • BUUCTF NewStarCTF 公开赛赛道Week2 Writeup
    文章目录WEEK2WEBWord-For-You(2Gen)IncludeOneUnserializeOneezAPIMISCYesecnodrumsticks2Coldwinds'sDesktop奇怪的二维码qsdz'sgirlfriend2WEEK2WEBWord-For-You(2Gen)题目描述哇哇哇,我把查询界面改了,现在你们不能从数据库中拿到东西了吧哈哈(不过为了调试的代码似乎忘......
  • 考研周记-week17
    准时的周记6.12~6.18记录一下本周的考研进度情况英语本周继续单词的复习,本周结束了数学的基础复习,并且考完了六级,目前准备开始学阅读课,并开始做早年真题,并回归正常的单词复习。数学数学方面,本周结束了基础30讲的所有学习内容,接下来讲进行概率论和线性代数的二刷,二刷结束后,就......
  • 2024备考Week14
    一、本周总结:使用时间:(达到上周目标35h,下周目标40h)总计35h,数学5h29min,专业课18h9min,英语8h53min。二、存在问题:1.数学所花时间不够,政治,计算机网络,计算机组成原理还未开始;2.数据结构,操作系统做题不够,没有对概念达成深入的理解,南大蒋炎岩操作系统刚跟完视频,但做题没有跟上;3.学习时间......
  • Weekly Report Template Duplicator - 周报模板复制器
    下面是周报模板复制/生成器代码:##WeeklyReportGenerator####ByAlexanderEzharjan#####Configs###template_file='template.docx'week_start=(2023,6,19)week_end=(2023,6,25)fin_date_tag="number:YOUR_STAFF_ID)"#落款时间标记########......