0x05.基本算法 - 排序
目录
- 1.AcWing 103. 电影
- 2.AcWing 104. 货仓选址
声明:
本系列博客是《算法竞赛进阶指南》+《算法竞赛入门经典》+《挑战程序设计竞赛》的学习笔记,主要是因为我三本都买了 按照《算法竞赛进阶指南》的目录顺序学习,包含书中的少部分重要知识点、例题解题报告及我个人的学习心得和对该算法的补充拓展,仅用于学习交流和复习,无任何商业用途。博客中部分内容来源于书本和网络(我尽量减少书中引用),由我个人整理总结(习题和代码可全都是我自己敲哒)部分内容由我个人编写而成,如果想要有更好的学习体验或者希望学习到更全面的知识,请于京东搜索购买正版图书:《算法竞赛进阶指南》——作者李煜东,强烈安利,好书不火系列,谢谢配合。
下方链接为学习笔记目录链接(中转站)
学习笔记目录链接
ACM-ICPC在线模板
1.AcWing 103. 电影
离散化
因为语言种类太多了,而实际用到的语言只有n+m种,实际上对答案产生影响的只有n种科学家会的语言。所以对n个科学家会的语言直接进行离散化,将语言压缩到n种就行了。重载一下运算符排序得最大值即可。
#include<iostream>
#include<bits/stdc++.h>
#include<algorithm>
#include<cstdio>
#include<cstring>
#include<queue>
#include<bitset>
#include<limits.h>
#define ls (p<<1)
#define rs (p<<1|1)
#define mid (l+r>>1)
#define over(i,s,t) for(register int i = s;i <= t;++i)
#define lver(i,t,s) for(register int i = t;i >= s;--i)
//#define int __int128
using namespace std;
#undef mid
typedef long long ll;
typedef unsigned long long ull;
typedef pair<ll,int> PLI;const int N = 200007;
const ll mod = 1e9+7;
const ll INF = 1e15+7;
const double EPS = 1e-10;
const int base = 131;struct node{int a,b,c;bool operator<(const node &t)const{if(a == t.a)return b>t.b;return a>t.a;}
}ans[N];
unordered_map<int,int>vis,sum;
int n,m,cnt,t;
int main()
{scanf("%d",&n);over(i,1,n){scanf("%d",&t);if(!vis[t]){vis[t] = ++cnt;t = cnt;}else t = vis[t];sum[t]++;}scanf("%d",&m);over(i,1,m){int x;scanf("%d",&x);x = vis[x];ans[i].a = sum[x];ans[i].c = i;}over(i,1,m){int x;scanf("%d",&x);x = vis[x];ans[i].b = sum[x];ans[i].c = i;}sort(ans+1,ans+1+m);cout<<ans[1].c;return 0;
}
2.AcWing 104. 货仓选址
就是中位数的性质,直接求中位数即可。
#include<iostream>
#include<bits/stdc++.h>
#include<algorithm>
#include<cstdio>
#include<cstring>
#include<queue>
#include<bitset>
#include<limits.h>
#define ls (p<<1)
#define rs (p<<1|1)
#define mid (l+r>>1)
#define over(i,s,t) for(register int i = s;i <= t;++i)
#define lver(i,t,s) for(register int i = t;i >= s;--i)
//#define int __int128
using namespace std;
#undef mid
typedef long long ll;
typedef unsigned long long ull;
typedef pair<ll,int> PLI;const int N = 100007;
const ll mod = 1e9+7;
const ll INF = 1e15+7;
const double EPS = 1e-10;
const int base = 131;int n,m,ans;
int a[N];
int mid = 0;
int main()
{scanf("%d",&n);over(i,1,n){scanf("%d",&a[i]);}sort(a+1,a+1+n);mid = a[n/2+1];over(i,1,n)ans += abs(mid-a[i]);printf("%d\n",ans);return 0;
}
0x05.基本算法 - 排序相关推荐
- 算法-排序-k排序(算法导论第三版第八章思考题8-5)
算法-排序-k排序 算法导论第三版第八章思考题8-5 时间复杂度Θ(nlg(n/k)). 利用最小堆完成,把元素分成k个堆,每个堆大小⌈n/k⌉. 利用堆作为子排序稳定,也可以采用其他排序作为子排序, ...
- 合并排序算法排序过程_合并排序| 用于大型输入的最佳排序算法之一
合并排序算法排序过程 What is sorting? 什么是分类? Sorting allows us to process our data in a more organized and eff ...
- 数据结构与算法——排序
文章目录 1.冒泡排序 2.选择排序 3.插入排序 4.快速排序 5.堆排序 6.归并排序 7.希尔排序 1.冒泡排序 将一个数组从小到大排序,一次循环(从头开始遍历,将相邻的两个数值比较,如果前面一 ...
- 合并排序算法排序过程_外部合并排序算法
合并排序算法排序过程 外部分类 (External sorting) External sorting is a technique in which the data is stored on th ...
- java 数据结构和算法 排序
排序算法 排序算法的介绍 算法的时间复杂度 **度量一个程序(算法)执行时间的两种方法** **时间频度** **时间复杂度** **常见的时间复杂度** 平均时间复杂度和最坏时间复杂度 算法的空间复 ...
- 微信朋友圈信息流可能采用算法排序吗?
最近微博大 v 阑夕表示:「信息流的时间排序在所有产品里都在被打击,微信也打算干预朋友圈的时间线,由系统介入用户分享内容的权重,权重低的内容将无法被所有好友看到.」 阑夕微博 在知乎上也由此引发一个讨 ...
- 第四十一章 贪心算法——排序不等式
第四十一章 贪心算法--排序不等式 一.题目信息 二.排序不等式 1.算法内容 2.算法证明 3.思路分析 三.代码实现 一.题目信息 二.排序不等式 1.算法内容 2.算法证明 3.思路分析 这道题 ...
- 重点算法排序之快速排序、归并排序(上篇)
文章目录 一.排序的概念及常见的排序算法 二.快速排序的思想及代码详解 2.1 快速排序的思想 2.2 挖坑法 2.2.1 挖坑法实现思想 2.2.2 挖坑法举例 2.2.3 挖坑法代码实现 2.3 ...
- JS的十大经典算法排序
更正(2018/5/31):如果看的是原文章的话,注意希尔排序少一个等号,在本博中,我已经添加上了,希尔排序(更正后)及以前的经测试都是正确的,后面的我正找时间持续研究验证中--(过程可能有点慢) 更 ...
最新文章
- 2014年第五届蓝桥杯决赛Java本科B组试题解析
- 淘金尖端领域:全球量子技术最新投资趋势
- MSER+SIFT 图像的特征向量提取
- 三 s5p4418对mcp2515 can总线的支持
- Minimum Inversion Number HDU - 1394(权值线段树/树状数组)
- js预览本地word文档_Github+docsify打造在线文档
- 写在2009年的开始
- python与室内设计_基于树莓派和Python的智能家居系统设计
- 微软亚研院 | 智能信息检索综述
- webloigc12服务启动不了_weblogic启动不能锁定AdminServer.lok的故障处理
- CentOS 5 全功能WWW服务器搭建全教程
- 【lssvm预测】基于麻雀算法优化最小二乘支持向量机实现风电功率预测(多输入单输出)含Matlab源码
- scrapy爬虫-美图录
- 计算机cad运行缓慢怎样处理,win7系统提高CAD运行速度的方法
- 【渝粤教育】电大中专消费者行为学30分钟交卷(1)作业 题库
- word自带公式等号对齐(可任意符号处对齐)
- 那怎样的文档才是好的产品文档呢
- 浪潮存储:基于系统级可靠性设计,为数据存储保驾护航
- CS1503号错误是什么
- css中如何给a标签设置图片背景