插入排序(CSP-J 2021 T2)我有新思路了,链接:https://www.cnblogs.com/wjk53233/p/16533752.html


我有新思路了,链接:https://www.cnblogs.com/wjk53233/p/16533752.html
我有新思路了,链接:https://www.cnblogs.com/wjk53233/p/16533752.html
我有新思路了,链接:https://www.cnblogs.com/wjk53233/p/16533752.html
这道题目很长但只要·二个数组就能解决数组一:a(a数组只是用来存数是无序的) p(p数组是用来记录数的位置的,p[i]表示第i个数的排序)
题目有两种操作,查询和顶替。
在查询时进行数组操作会爆因为Q * n达到了 1.6*10^10,亿秒肯定会爆,所以要在顶替操作时改变p数组,操作次数为4*10^7,运算量大幅度减少。
二种操作
1.顶替:
(一)先将要替换的点删除,要替换点的p数组内的数初始化为1并将比删除点的p数组内的数大(或等于,但一定i要大于替换点的下标)的p数组内的数-1;
(二)再将要替换的点换上新值新制(在替换操作后),并将比替换点的p数组内的数大(或等于,但一定i要大于替换点的下标)的p数组内的数+1;
(三)如果a[i]==v&&i<x或a[i]<v p[x]就++;
2.查找
(一)输入n1;
(二)输出p[n1];
剩下只有开头p数组要初始化为一之后就是小细节了
程序:
1 #include<iostream>
2 #include<algorithm>
3 #include<cstdio>
4 #include<cmath>
5 #include<map>
6 #include<vector>
7 #include<queue>
8 #include<set>
9 #define LL long long
10 using namespace std;
11 int main()
12 {
13 // freopen("1.in","r",stdin);
14 // freopen("1.out","w",stdout);
15 int n,q,a[9000]={0},p[9000]={0};
16 scanf("%d%d",&n,&q);
17 for(int i=1;i<=n;i++)
18 {
19 scanf("%d",&a[i]);
20 p[i]=1;
21 }
22 for(int i=1;i<=n;i++)
23 {
24 for(int j=1;j<=n;j++)
25 {
26 if(i==j) continue;
27 else
28 {
29 if(a[j]<a[i]) p[i]++;
30 else if(a[j]==a[i]&&i>j) p[i]++;
31 }
32 }
33 }
34 while(q--)
35 {
36 int l;
37 scanf("%d",&l);
38 if(l==1)
39 {
40 int x,v;
41 scanf("%d%d",&x,&v);
42 p[x]=1;
43 for(int i=1;i<=n;i++)
44 {
45 if(i==x) continue;
46 if(a[i]>a[x])
47 {
48 p[i]--;
49 }
50 if(a[i]==a[x]&&x<i)
51 {
52 p[i]--;
53 }
54 if(a[i]>v)
55 {
56 p[i]++;
57 }
58 if(a[i]==v&&i>x)
59 {
60 p[i]++;
61 }
62 if(a[i]<v)
63 {
64 p[x]++;
65 }
66 if(a[i]==v&&i<x)
67 {
68 p[x]++;
69 }
70 }
71 a[x]=v;
72 }
73 else
74 {
75 int n1;
76 scanf("%d",&n1);
77 printf("%d\n",p[n1]);
78 }
79 }
80 return 0;
81 }
插入排序(CSP-J 2021 T2)我有新思路了,链接:https://www.cnblogs.com/wjk53233/p/16533752.html的更多相关文章
- CSP J/S 初赛总结
CSP J/S 初赛总结 2021/9/19 19:29 用官方答案估计 J 涂卡的时候唯一的一支 2B 铅笔坏了,只能用笔芯一个个涂 选择 \(-6\ pts\) 判断 \(-3\ pts\) 回答 ...
- 【游记】CSP J/S 2019 游记
J 组 \(2:30\)开始, \(2:13\)还在酒店的我看了看手表...飞奔考场. T1 数字游戏 秒切. 下午某中学某大佬说可用线性基(%) T2 公交换乘 用单调队列思想,秒切. T3 纪念品 ...
- CSP J/S 2019受虐记
一枚蒟蒻的游记~ 提高组DAY1 不是说每场考试都有一道签到题吗 那我tm读了三遍题硬是没找到一道水题是怎么回事(是我太弱了吗) 没办法,硬着头皮做T1 暴力写法...期望得分30pts 于是...在 ...
- 【做题】ECFinal2018 J - Philosophical … Balance——dp
原文链接 https://www.cnblogs.com/cly-none/p/ECFINAL2018J.html 题意:给出一个长度为\(n\)的字符串\(s\),要求给\(s\)的每个后缀\(s[ ...
- xss小结-从xss平台搭建到csp规则
0x00前言 xss是跨站脚本攻击,利用嵌入js代码达到‘控制’对方浏览器的作用,测试的时候我们是用alert(1)弹窗,而做CTF也好,实际中的漏洞利用也好一般是用xss获取管理员的cookie 0 ...
- java.util.UnknownFormatConversionException: Conversion = 'j' || Conversion = 'D' || Conversion = 'Y'
执行内容: String a = "select * from j_question j where j.status = %s and j.title like '%java%'" ...
- 借书证信息管理系统,C语言实现
自己实现的如有缺漏欢迎提出 /* 原创文章 转载请附上原链接: https://www.cnblogs.com/jiujue/p/10325628.html */ 设计内容: 设计一个排序和查找系 ...
- 必须知道的Java八大排序算法
冒泡排序.简单选择.直接插入.快速排序.堆排序.希尔排序.归并排序.基数排序. 将其按排序方式分类如下图所示: 1.冒泡排序: 基本思想——在要排序的一组数中,对当前还未排好序的范围内的全部数据,自上 ...
- huffman树即Huffma编码的实现
自己写的Huffman树生成与Huffman编码实现 (实现了核心功能 ,打出了每个字符的huffman编码 其他的懒得实现了,有兴趣的朋友可以自己在我的基础增加功能 ) /* 原创文章 转载请附上原 ...
- <转载>ford-fulkerson算法2
原文链接https://www.cnblogs.com/luweiseu/archive/2012/07/14/2591573.html 作者:wlu 7. 网络流算法--Ford-Fulkerson ...
随机推荐
- Git创建、diff代码、回退版本、撤回代码,学废了吗
.eye-care { background-color: rgba(199, 237, 204, 1); padding: 10px } .head-box { display: flex } .t ...
- layui的switch监听事件无用
像layui的这种表单事件是属于表单,而不是表格,所以操作是layui.form.on监听事件,而不是用layui.table.on table = layui.table , form = layu ...
- day28 BOM浏览器对象 & 定时事件与Cookie & (视频卷子讲解)
3.10 BOM浏览器对象模型 3.10.1 window对象 所有浏览器都支持window对象,它表示浏览器窗口: | 属性 | history 网页历史记录 返回History只读对象 locat ...
- 基础css样式
目录 css层叠样式表 css选择器 伪类选择器 选择器生效优先级 css字体颜色背景 设置宽高 边框 display属性 div盒子模型 float漂浮 溢出overflow 定位(position ...
- O-MVLL:支持ARM64的基于LLVM的代码混淆模块
O-MVLL介绍 O-MVLL的开发灵感来自于另一个著名的基于LLVM的代码混淆项目ollvm,并在其基础上做了创新和改进.O-MVLL的混淆逻辑实现方式也是通过LLVM Pass,支持也仅会支持AR ...
- feDisplacementMap滤镜实现水波纹效果,计算动态值。
参考资料 https://www.zhangxinxu.com/wordpress/2017/12/understand-svg-fedisplacementmap-filter/ 该文章已经讲的特别 ...
- 持续发烧,聊聊Dart语言的并发处理,能挑战Go不?
前言 貌似关于Dart的文章没流量啊,就算在小编关怀上了首页,看得人还是很少的. 算了,今天持续发烧,再来写写如何使用 Dart 语言的并发操作.说起并发操作,玩 Go 的同学该笑了,这就是我们的看家 ...
- [百度营]AI studio用法提醒(自用)
持久化安装 需要设置持久化路径: !mkdir /home/aistudio/external-libraries !pip install beautifulsoup4 -t /home/aistu ...
- 【py模板】missingno画缺失直观图,matplotlib和sns画箱线图
import missingno as msn import pandas as pd train = pd.read_csv('cupHaveHead1.csv') msn.matrix(train ...
- .netcore项目docker化,以及docker之间通信
简言: 最近刚完成公司的新系统,系统使用的是微服务架构,由于领导说要将服务docker化.下面将我的研究结果分享出来,如若有错误的地方,还请各位多多指点. 目录: 什么是docker? 使用docke ...