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总部组织活动时,人人都说有空,结果到了活动日,却一个接着一个咕咕咕了.只有不 ...
随机推荐
- Go语言学习之goroutine
协程Coroutine 特点 轻量级的"线程" 非抢占式多任务处理,由协程主动交出控制权 编译器/解释器/虚拟机层面的多任务,非操作系统 多个协程可以在一个或多个线程上执行 go关 ...
- C2440 “初始化”: 无法从“std::_Vector_const_iterator<std::_Vector_val<std::_Simple_types<_Ty>>>”转换为“std::_Vector_iterator<std::_Vector_val<std::_Simple_types<_Ty>>>”
错误原因vs已经提醒的很清楚了:无法将const_iterator转换为iterator 我的出错代码是这样的 思考了很久,最后发现原来是因为将函数定义为const的缘故. 总结:当将函数定义为con ...
- [redis读书笔记] 第一部分 数据结构与对象 整数集合
typedef struct intset { // 编码方式 uint32_t encoding; // 集合包含的元素数量 uint32_t length; // 保存元素的数组 int8_t c ...
- geo常见需求
常见的地理位置相关需求有: 1.查找附近的人 2.显示两点距离 3.点是否在指定范围内(地理围栏) redis.MongoDB.mysql都已支持geo 几种geo方案对比 https://blog. ...
- Linux相关知识笔记
Quagga要在linux下编译并配置运行,所有,学习一点linux的基础知识. 安装的Ubuntu,用户名linux,密码1 使能Ubuntu的IP转发功能,需要修改etc/sysctl.conf和 ...
- 对CAN signal 的一点理解
首先每个 ECU是一个网络节点,每个网络节点可收发一些 Message,每个Message 由CAN signals构成.每个 CAN signal利用一个或多个连续的2进制位来表示承载的信息.下 ...
- shell脚本自动备份MySQL数据库
脚本如下: #!/bin/bash #数据库IP dbserver='127.0.0.1' #数据库用户名 dbuser='root' #数据密码 dbpasswd=' #数据库,如有多个库用空格分开 ...
- macos常用命令备查
常用命令 open . : 命令行打开文件夹 文件编辑 ps: 从一般模式进编辑模式,只需按i.I.a.A.o.O.r和R中某个键即可.当进入编辑模式时,在屏幕尾部会显示INSERT或REPLACE字 ...
- 【WPF学习】第四十九章 基本动画
在前一章已经学习过WPF动画的第一条规则——每个动画依赖于一个依赖项属性.然而,还有另一个限制.为了实现属性的动态化(换句话说,使用基于时间的方式改变属性的值),需要有支持相应数据类型的动画类.例如, ...
- scrapy的useragent与代理ip
scrapy中的useragent与代理ip 方法一: user-agent我们可以直接在settings.py中更改,如下图,这样修改比较简单,但是并不推荐,更推荐的方法是修改使用scrapy的中间 ...