最新要闻
- 焦点速看:33.98万元起买吗?理想L7内部空间图公布:感受一下到底有多能装
- 男子花20多万三亚度假遭遇节约型爸妈 网友热议:过度节约才是更大浪费
- 今日热讯:阿里回应将在新加坡建“第一高楼”当全球总部:出生在杭州 生长在杭州 发展在杭州
- 中国团队开发液体机器人成功越狱:复刻《终结者2》T-1000名场面
- 【世界播资讯】男子在鱼疗池睡着“生吞”小鱼 网友:鱼生从未体验的味道
- 要闻速递:国航航班颠簸下坠乘客录视频遗言以防不测:全飞机的人都在尖叫
- 世界微速讯:这几个月的二手车 可能是最香的
- 【世界热闻】-53℃的漠河启动i9-13900K、RTX 4090!魔幻一幕出现
- 当前热点-男孩逛景区遇现实版“鹈鹕灌顶”:小心确实有攻击性
- 动态焦点:女儿返程点千元外卖塞满父母冰箱:感恩双亲 过去他们把我行李箱装满
- 【世界新视野】顽皮狗总监:《神秘海域》不会再出了
- 世界焦点!大规模实测199颗i9-13900KS:6GHz的秘密找到了!真神仙
- 天天信息:PS5 Edge手柄续航差原因找到了:电池容量缩水1/3
- 首款支持NVIDIA RTX I/O秒进游戏的大作终于来了!但是平均帧率降了10%
- 每日速看!家长带三胞胎爬五指山 三大三小全被困:21小时才救出来
- 全球微资讯!希捷搞定50+TB硬盘!但还得等3年
广告
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
【环球速看料】[NOIP2016提高组] 愤怒的小鸟
(资料图)
洛谷传送门AcWing
解题思路
\(\qquad\)这题可以转化为一个重复覆盖问题,由于三个点可以确定一条抛物线,而这里的抛物线必定经过原点,所以可以用不是原点的两个点确定一条抛物线。
\(\qquad\)对于一个覆盖情况我们可以用一个二进制数 state
表示,其中从右往左从 \(0\) 开始编号,第 \(i\) 位是 \(1\) 的时候表示打中了,反之没打中。\(\qquad\)然后我们可以爆搜所有状态,知道一个状态全部为 \(1\),也就是 \((1 << n) - 1\),表示所有的猪都被打中了。对于一个非终点状态,我们找到第一个为 \(0\) 的数,然后枚举所有经过这个点的抛物线,从中间取出一个最小的答案就可以了。
\(\qquad\)为此我们可以进行一些预处理:定义path[i][j]
为经过i,j
两点的抛物线状态,也是同样用二进制压缩,和state
类似,第 \(i\) 位是 \(1\)代表经过,反之没经过。
\(\qquad\)有了path
数组之后,我们对于每个状态的转移枚举图上的所有点,新状态也就是老状态和path[x][i]
作或运算,就可以很容易地进行转移了。
\(\qquad\)这里提供两种实现方式:爆搜+剪枝和记忆化搜索
爆搜
#include #include #include #include using namespace std;const int N = 20, M = 1 << 18;int n, m, T, res, path[N][N], f[M];struct Point { double x, y; } p[N];int cmp(double a, double b) {if (fabs(a - b) <= 1e-6) return 0; // =return 1;}void calc(int i, int j) { if (path[i][j]) return ;double r1 = p[i].x, c1 = p[i].y;double r2 = p[j].x, c2 = p[j].y;double a = (c1 / r1 - c2 / r2) / (r1 - r2);double b = c1 / r1 - a * r1;if (a >= 0) return ; // 开口不朝下if (!cmp(r1, r2)) return ; // 垂直点对for (int k = 0; k < n; k ++ ) {double rk = p[k].x, ck = p[k].y;double t = rk * rk * a + b * rk;if (!cmp(t, ck)) path[i][j] |= 1 << k;}path[j][i] = path[i][j];}void dfs(int st, int cnt){ if (f[st] <= cnt) return ; if (st == (1 << n) - 1) return void (res = min(res, cnt));if (cnt >= res - 1) return ;int x;for (x = 0; x < n; x ++ )if (!(st >> x & 1)) break;for (int i = 0; i < n; i ++ ) if (path[x][i] && cnt + 1 < res) dfs(st | path[x][i], cnt + 1);f[st] = min(f[st], cnt);}void solve() {memset(f, 0x3f, sizeof f); memset(path, 0, sizeof path); res = 2e9;scanf("%d%d", &n, &m); // m 是无用条件for (int i = 0; i < n; i ++ ) scanf("%lf%lf", &p[i].x, &p[i].y);for (int i = 0; i < n; i ++ ) {path[i][i] = 1 << i;for (int j = i + 1; j < n; j ++ ) calc(i, j);}dfs(0, 0);printf("%d\n", res);}int main() {scanf("%d", &T);while (T -- ) solve();return 0;}
记忆化搜索
#include #include #include #include #define x first#define y secondusing namespace std;using PDD = pair ;const int N = 20, M = 1 << 18;int n, m, T, res, path[N][N];PDD p[N];int cmp(double a, double b) {return fabs(a - b) > 1e-6; }void calc(int i, int j) { if (path[i][j]) return ;double r1 = p[i].x, c1 = p[i].y;double r2 = p[j].x, c2 = p[j].y;double a = (c1 / r1 - c2 / r2) / (r1 - r2);double b = c1 / r1 - a * r1;if (a >= 0) return ; // 开口不朝下if (!cmp(r1, r2)) return ; // 垂直点对for (int k = 0; k < n; k ++ ) {double rk = p[k].x, ck = p[k].y;double t = rk * rk * a + b * rk;if (!cmp(t, ck)) path[i][j] |= 1 << k;}path[j][i] = path[i][j];}int dfs(int st, vector &f) { int &v = f[st]; if (st == (1 << n) - 1) return 0; if (v) return v; int x; for (x = 0; x < n; x ++ ) if ((st >> x & 1) == 0) break ; int res = 2e9; for (int i = 0; i < n; i ++ ) if (path[x][i]) res = min(dfs(st | path[x][i], f) + 1, res) ; return v = res;}void solve() {res = 2e9;vector f(M, 0);scanf("%d%d", &n, &m); // m 是无用条件for (int i = 0; i < n; i ++ ) scanf("%lf%lf", &p[i].x, &p[i].y);for (int i = 0; i < n; i ++ ) {path[i][i] = 1 << i;for (int j = i + 1; j < n; j ++ ) calc(i, j);}printf("%d\n", dfs(0, f)); memset(path, 0, sizeof path);}int main() {scanf("%d", &T);while (T -- ) solve();return 0;}
个人实测爆搜会快一点,只要 \(81ms\)
【环球速看料】[NOIP2016提高组] 愤怒的小鸟
焦点速看:33.98万元起买吗?理想L7内部空间图公布:感受一下到底有多能装
男子花20多万三亚度假遭遇节约型爸妈 网友热议:过度节约才是更大浪费
全球热点!操作系统的概念、功能和目标
今日热讯:阿里回应将在新加坡建“第一高楼”当全球总部:出生在杭州 生长在杭州 发展在杭州
中国团队开发液体机器人成功越狱:复刻《终结者2》T-1000名场面
密钥封装和公钥加密的联系和区别?
环球观热点:将awk脚本写在文件里:一种高效的awk循环循环方式
【世界播资讯】男子在鱼疗池睡着“生吞”小鱼 网友:鱼生从未体验的味道
要闻速递:国航航班颠簸下坠乘客录视频遗言以防不测:全飞机的人都在尖叫
学习笔记——redis数据类型(ZSet)
世界微速讯:这几个月的二手车 可能是最香的
Hexo 修改默认文章路径
【世界热闻】-53℃的漠河启动i9-13900K、RTX 4090!魔幻一幕出现
当前热点-男孩逛景区遇现实版“鹈鹕灌顶”:小心确实有攻击性
Educational Codeforces Round 1
动态焦点:女儿返程点千元外卖塞满父母冰箱:感恩双亲 过去他们把我行李箱装满
【世界新视野】顽皮狗总监:《神秘海域》不会再出了
环球速看:Windows开发的瑞士军刀,NewSPYLite发布
当前最新:学习笔记——redis中的数据类型(List、Set、Hash)
信息:【算法训练营day27】LeetCode39. 组合总和 LeetCode40. 组合总和II LeetCode131. 分割回文串
【环球新要闻】windows2003 的安装以及安装时遇到的问题
世界焦点!大规模实测199颗i9-13900KS:6GHz的秘密找到了!真神仙
天天信息:PS5 Edge手柄续航差原因找到了:电池容量缩水1/3
首款支持NVIDIA RTX I/O秒进游戏的大作终于来了!但是平均帧率降了10%
每日速看!家长带三胞胎爬五指山 三大三小全被困:21小时才救出来
全球微资讯!希捷搞定50+TB硬盘!但还得等3年
《流浪地球2》火爆 吴京恳请大家不要再宣传300亿票房:会觉得内疚
20年前 1个啤酒瓶能卖5毛钱 为什么在没人收了?
焦点速读:狗狗走丢一个月回家疯狂撞门:为啥土狗能找到回家的路 宠物狗却不能?
门店359元:鸿星尔克腾蛇2.0老爹鞋149元大促
读Java8函数式编程笔记02_流
苹果在三大战场向谷歌发起“无声战斗”:让iOS远离Android
全球动态:支付宝接口的数字签名
全球头条:连Intel都难逃寒冬:美国加州部门裁员数百人
自行车数量比人口还多 荷兰水下自行车库启用:比汽车车库还豪华
世界简讯:孩子抱走小狗还给大狗磕了3个头 剧情反转没血缘关系:网友调侃白磕
iPhone 15全系USB-C!iOS 17曝光:几乎没变化 苹果开始“摆烂”
每日信息:比燃油车更污染 吐槽新能源车愚蠢!丰田换帅 扩大纯电动汽车销售
直击近地行星2023BU与地球擦肩而过:卡车大小、时速高达5.4万公里
43英寸Mini-LED 144Hz高刷屏:三星宣布奥德赛Neo G7显示器进军全球市场
环球即时:AMD官方发布RX 7000/6000系显卡实测:老显卡更具性价比
每日焦点!Linux笔记03: Linux常用命令_3.5权限管理命令
焦点速讯:ASP.NET Core+Element+SQL Server开发校园图书管理系统(二)
长沙游客吐槽网红店排队4538桌 全家吃泡面引热议:春节被挤爆 网友感慨都是人
11.6英寸大屏+中置单摄模组:一加首款平板现身海外
最新版 Proteus 8.15 Professional 图文安装教程 [ 附安装包 ]
焦点要闻:假期剩5天作业剩7本 女孩崩溃大哭表示不想活了:网友笑趴太真实
我们没偷票房、幽灵场等!《满江红》被质疑抄袭《龙门镖局》宁财神回应
每日简讯:用状态机实现通用多字节SPI接口模块
世界播报:满江红票房破21亿!张艺谋揭秘震撼结尾 片方发声明称偷票房等指责纯属造谣
天天简讯:辽宁上空惊现“三个太阳”幻日奇观 手机拍下罕见一幕:专家揭秘成因
数字签名技术
当前滚动:小朋友哈尔滨室外舔冰雕舌头被粘:东北的冰真的是甜的吗?
环球热议:信号大升级!iPhone 15系列有望支持Wi-Fi 6E传输标准
今热点:实现有序表的增删改查
世界最资讯丨核显的春天来了!SK海力士发布最快LPDDR5T内存:飙上9.6Gbps
每日看点!明年再见!充电器一拔我和浪浪山道别了引热议 专家建议春节假期延至9天
东南亚赚大:中国游客彻底抛弃日本、韩国 这波打击影响太惨
全球速看:一家5人花100块去看“时空隧道” 直言开心就值:网友调侃参观蔬菜大棚
京东最便宜2TB SSD秒杀:569元还是TLC颗粒
世界新消息丨票房超19亿!网友质疑《满江红》剧情抄袭《龙门镖局》 10年前梗都照搬
全球头条:日本公司推出懒人沙发:走哪躺哪
环球滚动:还要更便宜!特斯拉:近5年车辆平均售价已减半 将继续控制成本
环球热消息:新增万名雇员!2022年荷兰半导体巨头ASML营收破纪录
【快播报】驾驶辅助技能大比拼 特斯拉殿后
天天看点:【个人笔记】2023年搭建基于webpack5与typescript的react项目
获11年来最大营收增幅照裁不误:IBM宣布将裁员3900人
世界快讯:苹果官网开售Mac Studio“锁具套装”:一个密码锁卖到548元
世界观察:为啥特斯拉疯狂降价到20多万 利润依然最高?官方揭秘真相
焦点!三星Galaxy S23 Ultra拍摄样张流露:30X变焦效果比S22 Ultra 20X更清晰
微速讯:RTX 4060将至:TGP功耗160W 可能采用传统8PIN供电
重点聚焦!影院回应《流浪地球2》改播《满江红》引热议:设备故障不能放
天天视点!全球数万用户遭波及:微软终于修复OneDrive等服务宕机问题
快资讯:Intel新款锐炫显卡现身:16 Xe核心 比A770弱42%
环球滚动:读Java8函数式编程笔记01_Lambda表达式
快资讯丨你为啥还不升级Win11?微软:1月31日停售Windows 10
世界速递!腾讯NVIDIA达成深度合作:打造低延迟超大分辨率渲染平台
当前视点!手机Galaxy S23系列手机保护壳曝光:独占功能 可滑动解锁
win11启动虚拟机出现蓝屏
全球聚焦:女子零下14度观影被冻到扶墙退场 网友:这是5D电影 身临其境
天天视讯!2023春节档总票房突破50亿!有望冲击史上最强春节档
世界短讯!向Redmi Note 12 Pro极速版看齐!小米Poco X5 Pro即将发布:骁龙778G配1亿像素主摄
世界热消息:安徽一电竞酒店装30块RTX 4090显卡:梦幻装备 玩了回不去
看热讯:Dart常用核心知识
世界热讯:带薪撸猫 女子过年不回家搞副业十天赚几千
编程与类型系统读后总结与感想
MySQL数据库
全球快资讯:国产新型量子计算机即将发布 中国第一家量子计算公司打造
短讯!《流浪地球2》智能机械狗“笨笨”开售:899元 支持遥控
每日信息:vue-grid-layout数据可视化图表面板优化过程所遇问题汇总
焦点讯息:索尼再次动刀!宣布电视、相机等产品即将涨价14%
全球实时:魅族20外观设计现身:极窄直屏边框颜值在线
头条:回文数-力扣
每日看点!蔚来车主占三个车位充电引争议 汽车博主:好像只能这么充
男孩打开新年礼盒发现是试卷后大哭:寒假作业还没有写完
天天视讯!漠河零下53℃极寒 有居民屋里穿短袖!网友集体羡慕:我们这取暖靠抖
当前快播:2022年度中国汽车保值率:日系车屠榜 秒杀BBA豪华车
学习笔记——NoSQL数据库;Redis概述;redis中常用的数据类型(key、string)
环球热头条丨比亚迪或进军保险业 将全资接盘易安财险