2020.01.19【NOIP提高组】模拟比赛-1.水池,2.数字排序,3.球星,4.钻石交易 总结反思
水池
比赛时
我最讨厌这种数学类题了,我首先想到了这几种情况,设\(jl[][]\)表示两点之间弧的距离,从F到G可以由
- F->G
- F->B->A->G
F->A->B->G
路径到达,那么,关键就是求弧长了,我于是自己乱写了一个式子,结果样例都没有过,一看时间已经去了很多了,于是放弃了,我觉得很多人会AC.之后
居然没有人比赛时A了这道题,这题正解三角函数,初中的蒟蒻我还没学~~~
求弧长可以用两点之间的距离先求出圆心角,然后就可以通过圆心角求出弧长了。具体做法等我后续更新数字排序
比赛时
第一眼看就觉得像我们昨天刚做过的题,注意到只有两行数,于是回忆起了昨天的题解中对只有两行数的解法——是二分,但是又回忆不起具体内容来,于是死命得想二分,想了很久,终于想到了一种二分套二分的解法。
我们可以二分答案,那最关键的就是如何判断当前二分到的mid合不合法,mid合法,当且仅当有小于k个数严格小于它,于是,这个问题就转化为了如何求小于mid的有多少个数,考虑到只有两行数,且\(n \leq 10000\) ,那么可以枚举i,求出\(a_i*b_j(1 \leq j \leq m)\) 有多少个严格小于mid,于是我们可以预先对b排序,然后用二分求出最后一个\(a_i*b_j < mid\)的下标,那么对于这个i,\(a_i*b_j(1 \leq j \leq m) < mid\)的就有下标个数。于是这题就解决了。之后
我们机房的大佬XYX跟我的思路差不多,但是它没有嵌套的二分,而是用了一个前缀和表示小于mid的有多少个数,具体怎么做unknow
球星
比赛时
仔细看以为是什么主席树等数据结构,因为要求11大,可我还没学,于是果断弃疗。
之后
题解的做法时线段树+归并排序的思想,线段树采用动态开点,或者也可以用离散化;归并排序的思想就是对于两个已经有序的序列a,b,我们只需要一重循环就可以将a,b合并(所以叫归并)为有序的数列c,这样就可以轻轻松松得求出每个区间的11大。
钻石交易
比赛时
思考了一会儿,脑子一直在瞎编乱造——最小费用最大流?BFS?状压DP?
看到\(m \leq 10\) ,于是决定采用状压DP,设\(f[s][i]\),s表示宝石的状态——卖或没卖,i表示当前在第i个城市,那么,处在当前这个状态,我们可以选择1.在当前城市卖掉宝石 2.不卖宝石走到其他城市
于是就简简单单得打了几个循环之后
拿了30分,答案错误。我没有考虑到一种情况——在当前s状态下,我们可以在剩余钱大于0时走到其他城市,这就相当与最短路径问题,而如果我们单单顺序枚举更新f,会找不到最优答案。正解:状压DP+dijk堆优化,状压DP主要处理卖宝石的情况,dijk主要处理在不卖宝石的情况下走到其它城市的情况,状压DP里面套dijk。
总结
- 对于求区间前k小的题目(k是固定的!),我们可以用线段树实现
对于状压DP但是顺序枚举不能保证最优解的题目,可以在状压DP内套xxx保证最优解
2020.01.19【NOIP提高组】模拟比赛-1.水池,2.数字排序,3.球星,4.钻石交易 总结反思的更多相关文章
- 计蒜客 NOIP 提高组模拟竞赛第一试 补记
计蒜客 NOIP 提高组模拟竞赛第一试 补记 A. 广场车神 题目大意: 一个\(n\times m(n,m\le2000)\)的网格,初始时位于左下角的\((1,1)\)处,终点在右上角的\((n, ...
- 2020.02.01【NOIP提高组】模拟B 组总结反思——数列(sequence) 树 【2012东莞市选】时间流逝 挖掘机技术哪家强
T1 数列(sequence) 比赛时 我自以为是地打了简简单单一个判断--- 之后 Waiting-- T2 2753. 树(tree) 比赛时 这题我居然比赛时也想了很久,可能是因为我太懒,我很早 ...
- 【纪中集训】2019.08.01【NOIP提高组】模拟 A 组TJ
T1 Description 给定一个\(N*N(N≤8)\)的矩阵,每一格有一个0~5的颜色.每次可将左上角的格子所在连通块变为一种颜色,求最少操作数. Solution IDA*=启发式迭代加深 ...
- 10-18 noip提高组模拟赛(codecomb)T1倍增[未填]
T1只想到了找环,> <倍增的思想没有学过,所以看题解看得雨里雾里的(最近真的打算学一下! 题目出的挺好的,觉得noip极有可能出现T1T2T3,所以在此mark 刚开始T1以为是模拟,还 ...
- [LUOGU] NOIP提高组模拟赛Day1
题外话:以Ingress为题材出的比赛好评,绿军好评 T1 考虑枚举第\(i\)个人作为左边必选的一个人,那左边剩余\(i-1\)个人,选法就是\(2^{i-1}\),也就是可以任意选或不选,右侧剩余 ...
- l洛谷 NOIP提高组模拟赛 Day2
传送门 ## T1 区间修改+单点查询.差分树状数组. #include<iostream> #include<cstdio> #include<cstring> ...
- 10-18 noip提高组模拟赛(codecomb)T2贪心
T2:找min:一直找最小的那个,直到a[i]-x+1小于0,就找次小的,以此类推: 求max,也是一样的,一直到最大的那个,直到次大的比之前最大的大,就找次大的: 这个模拟,可以用上priority ...
- HGOI20180815 (NOIP 提高组模拟赛 day2)
Day 2 rank 11 100+35+30=165 本题是一道数论题,求ax+by=c的正整数对(x,y) x>=0并且y>=0 先说下gcd: 求a,b公约数gcd(a,b) 如gc ...
- 【洛谷】NOIP提高组模拟赛Day2【动态开节点/树状数组】【双头链表模拟】
U41571 Agent2 题目背景 炎炎夏日还没有过去,Agent们没有一个想出去外面搞事情的.每当ENLIGHTENED总部组织活动时,人人都说有空,结果到了活动日,却一个接着一个咕咕咕了.只有不 ...
随机推荐
- BZOJ1257 [CQOI2007]余数之和 (数论分块)
题意: 给定n, k,求$\displaystyle \sum_{i=1}^nk\;mod\;i$ n,k<=1e9 思路: 先转化为$\displaystyle \sum_{i=1}^n(k- ...
- Go语言实现:【剑指offer】数组中只出现一次的数字
该题目来源于牛客网<剑指offer>专题. 一个整型数组里除了两个数字之外,其他的数字都出现了两次.请写程序找出这两个只出现一次的数字. 正常能想到哈希表来处理,但此题考查的是异或的知识, ...
- 新的征程TestOps
TestOps 概念是什么时候提出来的没有去考察,知道TestOps测试运维是在DevOps这个概念下抽象的结果. DevOps,现在几乎每家公司都在谈DevOps,都已经实施,在实施,或者在准备实施 ...
- idea快速创建一个类 实现一个接口
一 创建一个接口类 二 点击接口名称 按alt + ent 三 选择implement interface 选项 完美!!!!!!!
- 文件图片上传目录 禁止执行php
apache配置上传目录禁止运行php的方法 导读: 禁止上传目录运行php等可执行文件可以从一定程度上增加网站的安全性, 禁止上传目录运行php的方法可以用.htaccess文件, 也可以直接在ap ...
- 注销Apache
到D:\phpTools\Apache24\bin下运行cmd 输入httpd.exe -k uninstall -n apache24 回车后提示注销完成 接着把Apache的文件删了即可
- 解释为什么wait()和notify(), notifyAll()要放在同步块中
首先,wait()是释放锁的,因此wait()之前要先获得锁,而锁在同步块开始的时候获得,结束时释放,即同步块内为持有锁的阶段. 那为什么要设计同步块呢?或者说没有同步块会怎样呢?
- Thinkphp 前端视图输出日期时间戳自动转换为时间格式化年月日
需求:实现文章创建按年,月,日归类,并如图格式显示. 2018 年 11 月 ( 1 篇文章 ) 24日: 你走了真好,不然总担心你要走 (130) 05 月 ( 1 篇文章 ) 12日: 后来的我们 ...
- Windows远程连接Ubuntu上的MySQL数据库
原因:mysql安装好后,默认监听3306端口,并且只允许localhost访问,只允许root用户在localhost上登录. 我的环境: Ubuntu16.04 ...
- jq模糊匹配(qq:2798641729)
图灵学院--Java高级架构师-互联网企业级实战VIP课程(价值6380)(qq:1324981084) jq是一般程序员在前台开发的时候都会使用的技术,其中模糊匹配查询在动态添加标签的时候经常用到, ...