2021.11.05 eleveni的水省选题的记录
2021.11.05 eleveni的水省选题的记录
因为eleveni比较菜,但是eleveni不想写绿题(总不能说是被绿题虐得不想写),eleveni决定继续水noip原题。
——实际上菜菜的eleveni连noip绿题都不一定能水过/忍不住哭了
[P1966 NOIP2013 提高组] 火柴排队 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
本质就是求逆序对的题
#include<cstdio>
#include<iostream>
#include<algorithm>
#include<cstring>
#include<queue>
#include<map>
using namespace std;
//最大对最大???WF一道题???
#define int long long
const int N=1e6+10;
const int mod=1e8-3;
int n,a[N],b[N],ai[N],bi[N],mapi[N];
int tree[N];
inline int read(){
int s=0,w=1;
char ch=getchar();
while(ch<'0'||ch>'9'){
if(ch=='-')w=-1;
ch=getchar();
}
while(ch<='9'&&ch>='0'){
s=s*10+ch-'0';
ch=getchar();
}
return s*w;
}
inline int lowbit(int x){
return x&-x;
}
inline void add(int x,int k){
for(int i=x;i<=n;i+=lowbit(i))tree[i]+=k;
}
inline int query(int x){
int fin=0;
for(int i=x;i>0;i-=lowbit(i))fin+=tree[i];
//cout<<fin;
return fin;
}
signed main(){
n=read();
for(int i=1;i<=n;i++)ai[i]=a[i]=read();
sort(ai+1,ai+n+1);
int lena=unique(ai+1,ai+n+1)-ai-1;
for(int i=1;i<=n;i++)a[i]=lower_bound(ai+1,ai+lena+1,a[i])-ai;
for(int i=1;i<=n;i++)bi[i]=b[i]=read();
sort(bi+1,bi+n+1);
int lenb=unique(bi+1,bi+n+1)-bi-1;
for(int i=1;i<=n;i++)b[i]=lower_bound(bi+1,bi+lenb+1,b[i])-bi;
for(int i=1;i<=n;i++)mapi[a[i]]=i,a[i]=i;
for(int i=1;i<=n;i++)b[i]=mapi[b[i]];
//for(int i=1;i<=n;i++)cout<<b[i]<<" ";cout<<endl;
int ans=0;
for(int i=n;i>=1;i--){
ans+=query(b[i]);ans%=mod;
add(b[i],1);
//for(int j=1;j<=10;j++)cout<<tree[j]<<" ";
}
cout<<ans;
return 0;
}
[P3605 USACO17JAN]Promotion Counting P - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
#include<cstdio>
#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
const int N=1e5+10;
typedef long long ll;
int n,a[N],ai[N],cnt,head[N],tree[N],ans[N];
struct node{
int to,next;
}e[N];
inline int read(){
int s=0,w=1;
char ch=getchar();
while(ch<'0'||ch>'9'){
if(ch=='-')w=-1;
ch=getchar();
}
while(ch<='9'&&ch>='0'){
s=s*10+ch-'0';
ch=getchar();
}
return s*w;
}
inline int lowbit(int x){
return x&-x;
}
inline void addi(int x,int k){
for(int i=x;i<=n;i+=lowbit(i))tree[i]+=k;
}
inline int query(int x){
int fin=0;
for(int i=x;i>0;i-=lowbit(i))fin+=tree[i];
return fin;
}
inline void add(int u,int v){
++cnt;
e[cnt].to=v;
e[cnt].next=head[u];
head[u]=cnt;
}
inline void dfs(int x){
ans[x]-=query(n)-query(a[x]-1);
for(int i=head[x];i;i=e[i].next){
int v=e[i].to;
dfs(v);
}
ans[x]+=query(n)-query(a[x]-1);
addi(a[x],1);
}
int main(){
n=read();
for(int i=1;i<=n;i++)ai[i]=a[i]=read();
sort(ai+1,ai+n+1);
int len=unique(ai+1,ai+n+1)-ai-1;
for(int i=1;i<=n;i++)a[i]=lower_bound(ai+1,ai+len+1,a[i])-ai;
for(int i=2;i<=n;i++){
int x=read();
add(x,i);
}
dfs(1);
for(int i=1;i<=n;i++)cout<<ans[i]<<endl;
return 0;
}
2021.11.05 eleveni的水省选题的记录的更多相关文章
- 2021.11.30 eleveni的水省选题的记录
2021.11.30 eleveni的水省选题的记录 因为eleveni比较菜,eleveni决定先刷图论,再刷数据结构,同时每天都要刷dp.当然,对于擅长的图论,eleveni决定从蓝题开始刷.当然 ...
- 2021.11.02 eleveni的水省选题的记录
2021.11.02 eleveni的水省选题的记录 因为eleveni比较菜,所以eleveni决定从绿题开始水 --实际上菜菜的eleveni连绿题都不一定能水过/忍不住哭了 [P2217 HAO ...
- 2021.12.16 eleveni的刷题记录
2021.12.16 eleveni的刷题记录 1. 数论 https://www.luogu.com.cn/problem/P2532 1.1卡特兰数 https://www.luogu.com.c ...
- 日常Javaweb 2021/11/19
Javaweb Dao层: //连接数据库,实现增查功能 package dao; import java.sql.Connection; import java.sql.DriverManager; ...
- 日常Java 2021/11/18
用idea实现Javaweb登录页面 <%-- Created by IntelliJ IDEA. User: Tefuir Date: 2021/11/18 Time: 18:14 To ch ...
- 2021.12.21 eleveni的刷题记录
2021.12.21 eleveni的刷题记录 0. 有意思的题 P6701 [POI1997] Genotype https://www.luogu.com.cn/problem/P6701 状压优 ...
- 2021.12.19 eleveni的刷题记录
2021.12.19 eleveni的刷题记录 0. 本次记录有意思的题 0.1 每个点恰好经过一次并且求最小时间 P2469 [SDOI2010]星际竞速 https://www.luogu.com ...
- 2021.11.16 P2375 [NOI2014] 动物园(EXKMP+差分)
2021.11.16 P2375 [NOI2014] 动物园(EXKMP+差分) https://www.luogu.com.cn/problem/P2375 题意: PS:这道神题的背景让人疑惑,重 ...
- 2021.11.14 CF1583E Moment of Bloom(LCA+图上构造)
2021.11.14 CF1583E Moment of Bloom(LCA+图上构造) https://www.luogu.com.cn/problem/CF1583E 题意: She does h ...
随机推荐
- 6月11日 python学习总结 框架理论
Web框架本质及第一个Django实例 Web框架本质 我们可以这样理解:所有的Web应用本质上就是一个socket服务端,而用户的浏览器就是一个socket客户端. 这样我们就可以自己实现Web ...
- python监控cpu 内存实现邮件微信报警
# qianxiao996精心制作 #博客地址:https://blog.csdn.net/qq_36374896 import psutil, time,smtplib,socket import ...
- linux下安装简单的文件上传与下载工具 lrzsz
编译安装 1.从下面的网站下载 lrzsz-1.12.20.tar.gz wget https://ohse.de/uwe/releases/lrzsz-0.12.20.tar.gz 2.查看里面的I ...
- 平衡树:为什么Redis内部实现用跳跃表
摘要:Redis使用跳跃表(skiplist)作为有序集合(zset)的底层实现之一. 本文分享自华为云社区<5分钟了解Redis的内部实现跳跃表(skiplist)>,作者:万猫学社. ...
- ctf之GET
题目信息如图 启动环境 根据信息只需将参数?what=flag添加到url上即可
- Dubbo 支持分布式事务吗?
目前暂时不支持,可与通过 tcc-transaction 框架实现 介绍:tcc-transaction 是开源的 TCC 补偿性分布式事务框架 Git 地址:https://github.com/c ...
- Redis的安装与启动(一)
Redis是c语言开发的. 安装redis需要c语言的编译环境.如果没有gcc需要在线安装.yum install gcc-c++ 安装步骤: 第一步:redis的源码包上传到linux系统.--源码 ...
- Effective Java —— 多字段下考虑使用建造者模式构建实例
本文参考 本篇文章参考自<Effective Java>第三版第二条"Consider a builder when faced with many constructor pa ...
- 5-Pandas数据分组的函数应用(df.apply()、df.agg()和df.transform()、df.applymap())
将自己定义的或其他库的函数应用于Pandas对象,有以下3种方法: apply():逐行或逐列应用该函数 agg()和transform():聚合和转换 applymap():逐元素应用函数 一 ...
- C++ | 再探智能指针(shared_ptr 与 weak_ptr)
上篇博客我们模拟实现了 auto_ptr 智能指针,可我们说 auto_ptr 是一种有缺陷的智能指针,并且在C++11中就已经被摈弃掉了.那么本章我们就来探索 boost库和C++11中的智能指针以 ...