2020 NUC 19级第一次训练赛
感染(low)
Description
n户人家住在一条直线上,从左往右依次编号为1,2,...,n。起初,有m户人家感染了COVID-19,而接下来的每天感染的人家都会感染他家左右两家的人,问t天后总共有多少人家会感染。
Input
第一行输入三个整数n(1 <= n <= 2e5),m(0 <= m <= n),t(1<= t <= 2e5)。
第二行m个整数ai(1 <= ai <= n),代表最初感染的m户人家的编号。
Output
输出一个整数,代表最后会有多少人家感染。
Sample Input 1
10 3 2
1 3 4
Sample Output 1
6 分析:这个题实际上就是以m个点为中心,生成了m条长度最多为2*m的线段,然后合并这m条线段就可以了。
第i条线段的信息可以表示为[max(1, a[i] - t), min(n, a[i] + t)}。
代码:
#include<bits/stdc++.h>
using namespace std;
const int maxn = 2e5 + ;
int a[maxn];
vector<pair<int, int> > v;
int main() {
int n, m, t;
cin >> n >> m >> t;
for (int i = ; i <= m; i++)
cin >> a[i];
sort(a + , a + + m);
for (int i = ; i <= m; i++) {
int l = max(, a[i] - t);
int r = min(n, a[i] + t);
v.push_back(make_pair(l, r));
}
int i = , res = ;
while (i < m) {
int j = i + ;
while (j < m && v[j].first <= v[j - ].second) {
j++;
}
res += v[j - ].second - v[i].first + ;
i = j;
}
cout << res <<endl;
return ;
}
Description
一天,HighLights实在是闲的不行,他选取了n个地点,n各地点之间共有m条路径,他想找到这m条路径组成的第k短路,你能帮助他嘛?
Input
第一行三个正整数,地点的数量n(2 <= n <= 2e5),边的数量m(1 <= m <= 2e5),k(1 <= k <= min(m, 200))。
接下来m行,每行三个整数,边的一个顶点u(1<=u<=n),边的另一个顶点v(1<=v<=n),边的权值w(1<=w<=1e5),代表u有一条到v权值为w的单向边。
Output
输出第k短路的权值。
Sample Input 1
4 4 3
1 3 27
1 4 16
1 2 15
2 4 3
Sample Output 1
16 分析:这个题可以刚开始看的时候被吓到了,但是实际上这个题比较简单。因为k被限制了,k比较小,保证了k不大于m。
也就是第k短路是由权值前k小的边产生的子图构成的。
那么我们就可以对边进行权值从小到大排序,然后取权值前k的边,重新建图。
这里对顶点需要进行重新编号,可以使用map或set,然后建立一个新的单向图。
再对这个图跑个floyd,最后把G[i][j](i != j)都取出来,
从小到大排个序,那么排序完后第k个就是我们想要的第k短路了。
代码:
#include<bits/stdc++.h>
using namespace std;
const int maxn = 4e5 + ;
const int maxm = 4e2 + ;
struct node{
int u, v, w;
} e[maxn];
bool cmp(node a, node b) {
return a.w < b.w;
}
set<int> st;
int G[maxm][maxm];
map<int, int> id;
vector<int> res;
int main() { int n, m, t;
memset(G, 0x3f, sizeof(G));
for (int i = ; i < maxm; i++) {
G[i][i] = ;
}
cin >> n >> m >> t;
for (int i = ; i < m; i++) {
cin >> e[i].u >> e[i].v >> e[i].w;
}
sort(e, e + m, cmp);
for (int i = ; i < t; i++) {
st.insert(e[i].u);
st.insert(e[i].v);
}
int len = ;
for (auto p = st.begin(); p != st.end(); p++) {
id[*p] = ++len;
}
for (int i = ; i < t; i++) {
G[id[e[i].u]][id[e[i].v]] = min(G[id[e[i].u]][id[e[i].v]], e[i].w);
}
for (int i = ; i <= len; i++) {
for (int j = ; j <= len; j++) {
for (int k = ; k <= len; k++) {
G[i][j] = min(G[i][j], G[i][k] + G[k][j]);
}
}
}
for (int i = ; i <= len; i++) {
for (int j = ; j <= len; j++) {
if (i == j) continue;
res.push_back(G[i][j]);
}
}
sort(res.begin(), res.end());
cout << res[t - ] << endl;
return ;
}
2020 NUC 19级第一次训练赛的更多相关文章
- Xeon 第一次训练赛 苏州大学ICPC集训队新生赛第二场(同步赛) [Cloned]
A.给出一个字符串,求出连续的权值递增和,断开以后权值重新计数,水题 #include<iostream> #include<string> #include<cmath ...
- 2018.10.19浪在ACM 集训队第一次测试赛
2018.10.19浪在ACM 集训队第一次测试赛 待参考资料: [1]:https://blog.csdn.net/XLno_name/article/details/78559973?utm_so ...
- 2018省赛赛第一次训练题解和ac代码
第一次就去拉了点思维很神奇的CF题目 2018省赛赛第一次训练 # Origin Title A CodeForces 607A Chain Reaction B CodeForces ...
- 2018天梯赛第一次训练题解和ac代码
随着评讲的进行代码和题解会逐步放上来 2018天梯赛第一次训练 1001 : 进制转换 Time Limit(Common/Java):1000MS/10000MS Memory Limit: ...
- 10.0.0.55_12-16训练赛部分writeup
0x1 - MISC MISC100 一张帅行的照片 目测是图片隐写,但是binwalk并没有出来,应该是对文件头进行了修改 010editor查看一下,发现在jpg文件尾之后还有大量的数据 而且在灰 ...
- Contest1592 - 2018-2019赛季多校联合新生训练赛第二场(部分题解)
Contest1592 - 2018-2019赛季多校联合新生训练赛第二场 D 10248 修建高楼(模拟优化) H 10252 组装玩具(贪心+二分) D 传送门 题干 题目描述 C 市有一条东西走 ...
- Contest1585 - 2018-2019赛季多校联合新生训练赛第一场(部分题解)
Contest1585 - 2018-2019赛季多校联合新生训练赛第一场 C 10187 查找特定的合数 D 10188 传话游戏 H 10192 扫雷游戏 C 传送门 题干: 题目描述 自然数中除 ...
- 7.30 正睿暑期集训营 A班训练赛
目录 2018.7.30 正睿暑期集训营 A班训练赛 T1 A.蔡老板分果子(Hash) T2 B.蔡老板送外卖(并查集 最小生成树) T3 C.蔡老板学数学(DP NTT) 考试代码 T2 T3 2 ...
- 复旦高等代数I(19级)每周一题
本学期的高等代数每周一题活动计划从第2教学周开始,到第15教学周结束,每周的周末公布一道思考题(共14道,思考题一般与下周授课内容密切相关),供大家思考和解答.每周一题将通过“高等代数官方博客”(以博 ...
随机推荐
- C语言:将s所指字符串中下标为偶数同时ASCII值为奇数的字符删去,-将a所指字符串中的字符和b所指字符串中的字符的顺序交叉,-将形参s所指字符串中的所有数字字符顺序前移,
//函数fun功能:将s所指字符串中下标为偶数同时ASCII值为奇数的字符删去,s所指串中剩余的字符形成的新串放在t所指的数组中. #include <stdio.h> #include ...
- CSS-复选框默认样式修改
在css文件中添加如下代码 input[type='checkbox'] { -webkit-appearance: none; background: #fff url('../../static/ ...
- DL4J之CNN对今日头条文本分类
一.数据集介绍 数据来源:今日头条客户端 数据格式如下: 6551700932705387022_!_101_!_news_culture_!_京城最值得你来场文化之旅的博物馆_!_保利集团,马未都, ...
- 5_1 大理石在哪儿(UVa10474)<排序与查找>
Raju和Meena喜欢玩弹珠,他们有许多上面有号码的弹珠.一开始时,Raju按照弹珠上面的号码由小到大排成一列,然后Meena会要求Raju找出某个号码的第一颗弹珠所在的位置.她会算1…2…3…,如 ...
- notepad++ java编码,输出中文字符时,编译出错
呆在公司中,最近受开发手机app的几个同事影响,想学android的开发,心血来潮,挡也挡不住,说干就干,直接看教程,发现有很多关于java的语法知识不懂,于是又来学java,学习的过程中难免出现问题 ...
- 手把手教你使用Hexo+GitHub搭建自己的个人博客网站
安装nodejs环境 这个直接搜索安装即可,安装完成之后,通过如下命令检测环境变量是否安装成功: λ node -v # 输出版本号 v12.13.1 正确输入版本号即可. 安装cnpm cnpm是淘 ...
- 防止重复发送Ajax请求问题
在工作中有很多场景需要通过Ajax请求发送数据,像是注册.登录.提交用户反馈等.用户在点击了“确认”按钮之后有可能一段时间内没有收到反馈页面无任何反应,然后就接着连续多次点击“确认”按钮导致发送n个重 ...
- pwn之exp问题反馈和ASLR认知
如上问题是我执行脚本遇到的,改了脚本几次,依然没变,嗯...... 当我用了百度,据说是ALSR没关,的确,这导致我脚本中的addr是一个随机数,从而攻击失败 ##0x00:引用一下查到的知识:在传统 ...
- iOS ViewController 中代码书写规范
示例: // // CommonViewController.m // ZTBCamera // // Created by ZachRobin on 2017/8/3. // Copyright © ...
- POJ 2559 Largest Rectangle in a Histogram(单调栈) && 单调栈
嗯... 题目链接:http://poj.org/problem?id=2559 一.单调栈: 1.性质: 单调栈是一种特殊的栈,特殊之处在于栈内的元素都保持一个单调性,可能为单调递增,也可能为单调递 ...