上次补题好像把两次训练混在一起了,总之先按时间顺序补完这一次|ू・ω・` )

HDU-6301  不会的东西不能逃避.jpg

  红小豆非常讨厌构造题,因为非常不会,并且非常逃避学习这类题,因为总也搞不清楚。

  这次红小豆搞清楚了一道构造区间数字不重复数列的题。

  首先,由于字典序最小,即每次可以直接提取可能值中最小值,且不重复,又可以插入删除,所以我们获得了set(噔噔噔)用ta来装可以填的数。接着,我们考虑大区间包着小区间的情况,显然大区间满足条件时小区间必然满足,所以我们这时可以把小区间视为大区间(合并)。然后,我们考虑互相分离的情况,这时应该把当前左端点到前一个左端点之间的数重新塞回set里,然后再抽一遍最小值。最后,我们考虑很麻烦的交叠情况,就是酱紫的:l1----l2---r1------r2,在l2---r1之间的数不能用在r1----r2中,而l1---l2之间的要塞回set,因此也是靠左端点的记录状态。

  综上,我们需要知道每个位置对应的区间左端点,这个我们可以通过记录右端点的左端点,然后检查目前位置的后一个位置(倒着维护一遍必将有右端点),如果指向了更前面(位置编号更小)的地方,那就把目前位置的左端点更新为这个地方,不然的话就指着自己(这样没有被要求的地方就会不断把之前的数塞回set里,于是不断被填成1,得到最小字典序)。每个位置填数时,先将本次左端点和上次左端点之间的数塞回set,之后提取最小,最后从set里清除,输出。

  乱码如下

#include<iostream>
#include<cstdio>
#include<cmath>
#include<algorithm>
#include<set>
using namespace std;
int l, r;
int ans[];
int lh[];
int n, m, t; int main()
{
cin >> t;
while (t--) {
cin >> n >> m;
for (int i = ; i <= n; i++) {
ans[i] = ;
lh[i] = i;
}
for (int i = ; i <= m; i++) {
cin >> l>> r;
if (lh[r] > l)lh[r] = l;
}
for (int i = n - ; i >= ; i--)
if (lh[i + ] < lh[i])lh[i] = lh[i + ];
set<int>p;
for (int i = ; i <= n; i++)p.insert(i);
for (int i = ; i <= n; i++) {
for (int j = lh[i - ]; j < lh[i]; j++) p.insert(ans[j]);
ans[i] = *p.begin();
p.erase(p.begin());
if (i == )cout << ans[i];
else if (i == n)cout << " " << ans[n] << endl;
else cout << " " << ans[i];
} }
return ;
}

HDU-6301

  我看到的题解里用pair来存要求区间,可是后面并没有再用到这个区间,所以就直接用l和r吧。定义在循环里的set就可以每次都清空了(比如某次搜索wa到爆炸是因为队列定义在了外面嘤)。第一个循环不从0开始的话(因为我后面从1开始)就会有很多零被填到数列里。。。

HDU-6300  有些东西总是要学会的,脑子有坑是为了增大皮层面积

  发现一道水题,反而补的时候wa了两次,然后改了排序cmp学会了bool operator(一直固执地手写cmp),最后发现是输出错误(逐渐KAI化)。我是三个三个跳着输出的,i最后还是会到3*n,想着输出n次就定了小于n嘤

  给的是n,输入点输出点都是3*n,完。

#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
struct node {
int x, y, num;
bool operator < (const node&a) const{
if (a.x == x)return y < a.y;
return x < a.x;
}
}p[]; int main()
{
int t, n;
cin >> t;
while (t--) {
cin >> n;
for (int i = ; i < * n; i++) {
cin >> p[i].x >> p[i].y;
p[i].num = i + ;
}
sort(p, p + * n);
for (int i = ; i < *n; i += )
cout << p[i].num << " " << p[i + ].num << " " << p[i + ].num << endl;
}
return ;
}

HDU-6300

  这次还有一个板子好长的空间几何,还有一个想专门整理一篇的反演|ू・ω・` )

  emmm反正我今天不想写了,白天武大onsite很是自闭(但是一起打比赛又很开心),很困又充满迷茫的烦躁。机会留给有准备的人,可是如果每个溜过身边的机会都不想丢失,就要在疲惫之外努力承受总是差一点点的命运扼喉感。毕竟,果断就会白给,太菜才是原罪(支离破碎的发言)

[数]补题ver.的更多相关文章

  1. The Preliminary Contest for ICPC Asia Xuzhou 2019 【 题目:so easy】{并查集维护一个数的下一个没有被删掉的数} 补题ING

    题意:给[1,n],n个数,有两种操作: 1 x,删去x2 x,查询还未被删去的数中大于等于x的最小的数是多少. input: output: 做法:按照并查集的方法压缩路径 代码: #include ...

  2. [数]数学系列预习->补水题ver.

    ---恢复内容开始--- 话说要学反演了,contest一题都搞不定,整理题目暂且搁置,数学笨蛋来学一下数学_(:з」∠)_ ---恢复内容结束--- 是的,预习看了半天教学,没有整理,做题又都不会, ...

  3. 2017河工大校赛补题CGH and 赛后小结

    网页设计课上实在无聊,便开始补题,发现比赛时候僵着的东西突然相通了不少 首先,"追妹"这题,两个队友讨论半天,分好多种情况最后放弃(可是我连题目都没看啊),今天看了之后试试是不是直 ...

  4. 2018 HDU多校第四场赛后补题

    2018 HDU多校第四场赛后补题 自己学校出的毒瘤场..吃枣药丸 hdu中的题号是6332 - 6343. K. Expression in Memories 题意: 判断一个简化版的算术表达式是否 ...

  5. 2018 HDU多校第三场赛后补题

    2018 HDU多校第三场赛后补题 从易到难来写吧,其中题意有些直接摘了Claris的,数据范围是就不标了. 如果需要可以去hdu题库里找.题号是6319 - 6331. L. Visual Cube ...

  6. 4.30-5.1cf补题

    //yy:拒绝转载!!! 悄悄告诉你,做题累了,去打两把斗地主就能恢复了喔~~~ //yy:可是我不会斗地主吖("'▽'") ~~~那就听两遍小苹果嘛~~~ 五一假期除了花时间建模 ...

  7. 2018 CCPC 桂林站(upc复现赛)补题

    2018 CCPC 桂林站(upc复现赛)补题 G.Greatest Common Divisor(思维) 求相邻数的差值的gcd,对gcd分解素因子,对所有的素因子做一次遍历,找出最小答案. 几个样 ...

  8. Codeforces VP/补题小记 (持续填坑)

    Codeforces VP/补题小记 1149 C. Tree Generator 给你一棵树的括号序列,每次交换两个括号,维护每次交换之后的直径. ​ 考虑括号序列维护树的路径信息和,是将左括号看做 ...

  9. 【春训团队赛第四场】补题 | MST上倍增 | LCA | DAG上最长路 | 思维 | 素数筛 | 找规律 | 计几 | 背包 | 并查集

    春训团队赛第四场 ID A B C D E F G H I J K L M AC O O O O O O O O O 补题 ? ? O O 传送门 题目链接(CF Gym102021) 题解链接(pd ...

随机推荐

  1. SonarQube安装文档

    1.SonarQube 1.1 SonarQube介绍 SonarQube是管理代码质量一个开放平台,可以快速的定位代码中潜在的或者明显的错误. SonarQube是否可以使用自定义规则由开发人员的开 ...

  2. Appium测试安卓apk遇到的问题及解决方法

    1.Showing error - “Returned value cannot be converted to WebElement: {ELEMENT=1}  解决方法:https://sqa.s ...

  3. 使用Travis CI自动部署博客到github pages和coding pages

    每次换系统或换电脑之后重新部署博客总是很苦恼?想像jekyll那样,一次性部署完成后,以后本地不用安装环境直接 git push 就能生成博客?那推荐你应该使用使用 Travis CI了. 这篇文章我 ...

  4. C# 利用反射动态给模型Model 赋值

    https://www.cnblogs.com/waitingfor/articles/2220669.html object ff = Activator.CreateInstance(tt, nu ...

  5. 论文阅读:Siam-RPN

    摘要 Siam-RPN提出了一种基于RPN的孪生网络结构.由孪生子网络和RPN网络组成,它抛弃了传统的多尺度测试和在线跟踪,从而使得跟踪速度非常快.在VOT实时跟踪挑战上达到了最好的效果,速度最高16 ...

  6. 【书】.NET及计算机类相关书籍,持续更新...

    一级目录 链接: https://pan.baidu.com/s/1y3osr3YCQ7XlM81RzkN1eQ 提取码: gs3r 二级目录 链接: https://pan.baidu.com/s/ ...

  7. react项目中页面跳转、刷新及获取网络状态

    // 页面跳转 window.location.href = 'http://speedtest.wangxiaotong.com/' // 页面刷新 window.location.reload() ...

  8. webpack学习笔记 (三) webpack-dev-server插件和HotModuleReplacementPlugin插件使用

    webpack-dev-server插件 webpack-dev-server是webpack官方提供的一个小型Express服务器.使用它可以为webpack打包生成的资源文件提供web服务. we ...

  9. PCA和PCoA

    讲解很详细:http://blog.genesino.com/2016/10/PCA/ PCA分析一般流程: 中心化(centering, 均值中心化,或者中位数中心化),定标(scale,如果数据没 ...

  10. every、some数组方法

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...