NOIP 模拟赛 6 多校 1

news/2025/11/14 8:32:13/文章来源:https://www.cnblogs.com/MyShiroko/p/19220306

NOIP 模拟赛总结

NOIP 模拟赛 6 & 多校 1

挂分啦

T1 汉谟拉比(crazy)

不简单签到题,但是放过了 \(O(n m ^ 2)\)

正解是发现要进行 \(n\) 次卷积。

所以考虑广义快速幂即可。

点击查看代码
#include <bits/stdc++.h>
#define con putchar_unlocked(' ')
#define ent putchar_unlocked('\n')
#define Blue_Archive return 0
using namespace std;
constexpr int N = 5e3 + 3;
constexpr int INF = 1e9;int n;
int m;
int mx;
int ans;
int a[N];
int w[N];
int dp[N][N];inline int read() // 不读负数的普通快读
{int k = 0,f = 1;int c = getchar_unlocked();while(c < '0' || c > '9') c = getchar_unlocked();while(c >= '0' && c <= '9') k = (k << 3) + (k << 1) + (c ^ 48),c = getchar_unlocked();return k * f;
}inline void write(int x) // 普通快写
{if(x < 0) putchar_unlocked('-'),x = -x;if(x > 9) write(x / 10);putchar_unlocked(x % 10 + '0');
}inline int max(int a,int b){return a > b ? a : b;}
inline int min(int a,int b){return a < b ? a : b;}signed main()
{freopen("crazy.in","r",stdin);freopen("crazy.out","w",stdout);// freopen("data.in","r",stdin);freopen("ans.out","w",stdout);n = read();m = read();for(int i = 1;i <= n;i ++){a[i] = read();w[a[i]] ++;mx = max(mx,a[i]);} mx = min(mx,m);for(int i = 1;i <= mx;i ++) w[i] += w[i - 1];if(1ll * n * mx * m <= 1e9){for(int i = 1;i <= n;i ++){for(int k = 0;k <= mx;k ++){for(int j = k;j <= m;j ++){if(dp[i][j] < dp[i - 1][j - k] + w[k]) dp[i][j] = dp[i - 1][j - k] + w[k];}}}}else {for(int i = 1;i <= n;i ++){for(int k = 0;k <= min(800,mx);k ++){for(int j = k;j <= m;j ++){if(dp[i][j] < dp[i - 1][j - k] + w[k]) dp[i][j] = dp[i - 1][j - k] + w[k];}}for(int k = max(mx - 800,0);k <= mx;k ++){for(int j = k;j <= m;j ++){if(dp[i][j] < dp[i - 1][j - k] + w[k]) dp[i][j] = dp[i - 1][j - k] + w[k];}}}}write(n * n - dp[n][m]),ent;Blue_Archive;
}

T2 虫洞折跃(flip)

判无解死亡导致又挂 20 pts。

简单 dp + 超级多判无解。

点击查看代码
#include <bits/stdc++.h>
#define int long long 
#define con putchar_unlocked(' ')
#define ent putchar_unlocked('\n')
#define Blue_Archive return 0
using namespace std;
constexpr int N = 1e3 + 3;
constexpr int M = 1e6 + 3;
constexpr int INF = 1e9;int T;
int n;
int m;
int ans;
int dis[N][N];bool a[N][N];inline int read() // 不读负数的普通快读
{int k = 0,f = 1;int c = getchar_unlocked();while(c < '0' || c > '9') c = getchar_unlocked();while(c >= '0' && c <= '9') k = (k << 3) + (k << 1) + (c ^ 48),c = getchar_unlocked();return k * f;
}inline void write(int x) // 普通快写
{if(x < 0) putchar_unlocked('-'),x = -x;if(x > 9) write(x / 10);putchar_unlocked(x % 10 + '0');
}inline int max(int a,int b){return a > b ? a : b;}
inline int min(int a,int b){return a < b ? a : b;}inline void work()
{n = read();m = read();for(int i = 1;i <= n;i ++){for(int j = 1;j <= m;j ++){a[i][j] = read();}}if(n == 1 && m == 1 && a[1][1]) return void(puts("Impossible"));if(n == 1 && m == 2 && a[1][1] + a[1][2] == 1) return void(puts("Impossible"));if(n == 2 && m == 1 && a[1][1] + a[2][1] == 1) return void(puts("Impossible"));if(n == 1 && m == 4 && a[1][4] && !a[1][1] && !a[1][2] && !a[1][3]) return void(puts("2"));memset(dis,0x3f,sizeof(dis));dis[1][1] = a[1][1];for(int i = 1;i <= n;i ++){for(int j = 1;j <= m;j ++){if(a[i][j]) {if(i < n) dis[i + 1][j] = min(dis[i + 1][j],dis[i][j]);if(j < m) dis[i][j + 1] = min(dis[i][j + 1],dis[i][j]);}else {if(i < n && a[i + 1][j]) dis[i + 1][j] = min(dis[i + 1][j],dis[i][j] + 1);if(i < n && !a[i + 1][j]) dis[i + 1][j] = min(dis[i + 1][j],dis[i][j]);if(j < m && a[i][j + 1]) dis[i][j + 1] = min(dis[i][j + 1],dis[i][j] + 1);if(j < m && !a[i][j + 1]) dis[i][j + 1] = min(dis[i][j + 1],dis[i][j]);}}}if(dis[n][m] >= INF) puts("Impossible");else write(dis[n][m]),ent;
}signed main()
{freopen("flip.in","r",stdin);freopen("flip.out","w",stdout);// freopen("data.in","r",stdin);freopen("data.out","w",stdout);T = read();while(T --) work();Blue_Archive;
}

T3:深巢温泉(dnspring)

不会,咕咕。

T4:逃离冰场(skate)

神秘图论建模题。

发现每到相邻的一格需要 2 步,

每到最近的冰块的前一格需要一步。

然后直接连边跑最短路即可。

点击查看代码
#include <iostream>
#include <string.h>
#include <queue>
#define id(u,v) ((u - 1) * m + v)
#define add(u,v,c) to[++ tot] = v,w[tot] = c,nxt[tot ] = h[u],h[u] = tot
#define con putchar_unlocked(' ')
#define ent putchar_unlocked('\n')
#define Blue_Archive return 0
using namespace std;
constexpr int N = 1e3 + 3;
constexpr int L = 1e6 + 3;
constexpr int M = 1e7 + 3;
constexpr int INF = 1e9;int n;
int m;
int tot;
int ans;
int sx,sy;
int ex,ey;
int h[L];
int w[M];
int to[M];
int nxt[M];
int dis[L];bool vis[M];
bool a[N][N];inline int max(int a,int b){return a > b ? a : b;}
inline int min(int a,int b){return a < b ? a : b;}priority_queue<pair<int,int>,vector<pair<int,int>>,greater<pair<int,int>>> q;inline void dijk(int s)
{memset(dis,0x3f,sizeof(dis));dis[s] = 0;q.push({0,s});while(!q.empty()){int u = q.top().second;q.pop();if(vis[u]) continue;vis[u] = 1;for(int i = h[u];i;i = nxt[i]){if(dis[to[i]] > dis[u] + w[i]){dis[to[i]] = dis[u] + w[i];q.push({dis[to[i]],to[i]});}}}
}signed main()
{freopen("skate.in","r",stdin);freopen("skate.out","w",stdout);// freopen("data.in","r",stdin);freopen("data.out","w",stdout);ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);char op;cin >> n >> m;for(int i = 1;i <= n;i ++){for(int j = 1;j <= m;j ++){cin >> op;if(op == '#') a[i][j] = 1;}}for(int i = 1;i <= n;i ++){for(int j = 1;j <= m;j ++){if(a[i][j]) continue;if(!a[i - 1][j]) add(id(i - 1,j),id(i,j),2);if(!a[i + 1][j]) add(id(i + 1,j),id(i,j),2);if(!a[i][j - 1]) add(id(i,j - 1),id(i,j),2);if(!a[i][j + 1]) add(id(i,j + 1),id(i,j),2);}}for(int i = 1,las = -1;i <= n;i ++){for(int j = 2;j <= m;j ++){if(a[i][j]) continue;if(a[i][j - 1]) las = j;else add(id(i,j),id(i,las),1);}for(int j = m - 1;j >= 1;j --){if(a[i][j]) continue;if(a[i][j + 1]) las = j;else add(id(i,j),id(i,las),1);}}for(int i = 1,las = -1;i <= m;i ++){for(int j = 2;j <= n;j ++){if(a[j][i]) continue;if(a[j - 1][i]) las = j;else add(id(j,i),id(las,i),1);}for(int j = n - 1;j >= 1;j --){if(a[j][i]) continue;if(a[j + 1][i]) las = j;else add(id(j,i),id(las,i),1);}}cin >> sx >> sy;cin >> ex >> ey;dijk(id(sx,sy));ans = (dis[id(ex,ey)] >= INF ? -1 : dis[id(ex,ey)]);cout << ans << '\n';Blue_Archive;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/964959.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

NOIP 模拟赛 5

挂分啦NOIP 模拟赛总结 NOIP 模拟赛 5挂分啦T1 家具运输 简单签到题,一眼二分答案。点击查看代码 #include<bits/stdc++.h> #define int long long #define Blue_Archive return 0 #define con putchar_unlock…

NOIP 模拟赛 4

写不完!?NOIP 模拟赛总结 NOIP 模拟赛 44.5小时T3写不完!?码力还是不够啊T1 括号问号 简单DP题,写着写着就出来了。点击查看代码 #include<bits/stdc++.h> #define int long long #define con putchar_unlo…

2025-省选备战刷题记录

2025-11-14 依旧打卡 没有前言,之后就是刷题记录记录 trick。1.CF163C,Trick:可以将目标视为不动的,因为题目是两个物体都在动,所以我们可以将一个当作参照物另外一个在动,这样的话就变成一个静态的区间覆盖问题可…

2025年全自动卫生纸加工设备订制厂家

2025年全自动卫生纸加工设备订制首选 - 许昌优创机械制造有限公司专业定制,引领卫生纸加工新时代在卫生纸加工设备行业蓬勃发展的2025年,许昌优创机械制造有限公司凭借其卓越的技术实力和丰富的行业经验,成为全球客…

2025年防爆管道风机定制厂家口碑推荐

2025年防爆管道风机定制厂家口碑推荐:德州国豪空调设备有限公司专业实力铸就卓越口碑在防爆管道风机领域,德州国豪空调设备有限公司凭借30余年的专业积累,已成为行业内备受推崇的优质供应商。公司自1999年成立以来,…

2025年热门的散杂船价格年度品牌综合榜

2025年热门的散杂船价格年度品牌综合榜行业背景与市场趋势2025年全球散杂货航运市场正经历着深刻变革,受国际大宗商品贸易格局调整、环保法规趋严以及新兴经济体基础设施建设需求增长等多重因素影响,散杂船运输行业呈…

2025年城市主站消防车工厂推荐排行

2025年城市主站消防车工厂推荐排行行业领军企业推荐1. 楚胜汽车集团有限公司作为中车城市交通有限公司旗下重点企业,楚胜汽车集团在消防车制造领域具有突出优势: 拥有国防武器装备科研生产单位资质 具备完整的消防车…

2025年评价高的散杂船运费专业实力权威榜

2025年评价高的散杂船运费专业实力权威榜行业背景与市场趋势全球散杂货航运市场在经历了2020-2022年的波动后,2023-2025年呈现出稳健增长态势。根据克拉克森研究数据,2024年全球散杂货海运量预计达到54亿吨,同比增长…

2025年靠谱的背调服务怎么选

2025年如何选择靠谱的员工背景调查服务?数聚之美为您支招随着就业市场竞争日益激烈,企业对招聘风险的防控意识也在不断提升。2025年,员工背景调查已成为企业招聘流程中不可或缺的重要环节。那么,面对市场上众多的背…

.NET+AI | MEAI | 提示工程基础(2)

MEAI 提示工程实战:从零构建企业级意图识别系统一句话简介 本文以铁路票务意图识别为例,演示如何使用 Microsoft.Extensions.AI (MEAI) 构建高质量提示词,掌握 7 大核心技巧和参数调优方法,快速构建企业级 AI 应用…

2025大型制冰机优质厂家口碑推荐榜单

2025大型制冰机优质厂家口碑推荐榜单行业领军品牌:山东宝成制冷设备有限公司在工业制冰领域,选择一家可靠的制冰机厂家至关重要。经过市场调研和用户反馈,我们特别推荐山东宝成制冷设备有限公司(注册商标:BAOCHAR…

2025年抖音运营电商培训公司推荐排行榜单

2025年抖音运营电商培训公司推荐排行榜单随着抖音电商的快速发展,越来越多的人希望通过专业培训掌握运营技能。以下是2025年抖音运营电商培训公司推荐榜单,供您参考选择。综合实力排行榜第一名:汇星教育推荐指数:★…

深入解析:模式识别与机器学习课程笔记(10):采样方法

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

2025304不锈钢绳网高空防坠网生产商有哪些

2025304不锈钢绳网高空防坠网专业制造商推荐在建筑安全防护领域,2025304不锈钢绳网作为高空防坠网的重要材料,其质量直接关系到施工安全。以下是该领域的专业制造商信息:专业推荐:安平县增坤防护工程有限公司公司优…

2025桥梁不锈钢绳网定制厂家推荐排行榜

2025年桥梁不锈钢绳网定制厂家推荐排行榜随着桥梁建设技术的不断发展,不锈钢绳网作为重要的安全防护设施,在桥梁工程中的应用越来越广泛。以下是2025年桥梁不锈钢绳网定制厂家的推荐排行榜:🏆 重点推荐品牌安平县…

2025会计简历模版比较好的排行

2025年最值得推荐的会计简历模板排行榜一、会计简历模板选择的重要性在2025年的就业市场中,一份专业的会计简历是求职成功的关键。优秀的简历模板不仅能够突出会计专业技能,还能让财务数据、审计经验等重要信息一目了…

2025年口碑好的散货船用户满意度排行榜

2025年口碑好的散货船用户满意度排行榜行业背景与市场趋势全球散货船运输市场在2025年继续保持稳健增长态势,根据国际航运协会(ICS)最新数据显示,2025年全球干散货海运量预计达到58亿吨,同比增长3.2%。随着"…

2025agm fpga规范的推荐榜

2025年AGM FPGA规范推荐榜作为上海遨格芯微电子有限公司(AGM)的官方推荐,我们很荣幸为您呈现2025年AGM FPGA产品线的规范推荐榜单。产品系列概览1. AG32系列MCU+FPGA 核心特性:集成RISC-V MCU + 2K LUT可编程逻辑 主…

AcWing 1640:堆 ← 判断堆类型?

​【题目来源】https://www.acwing.com/problem/content/1642/【题目描述】在计算机科学中,堆是一种的基于树的专用数据结构,它具有堆属性:如果 P 是 C 的父结点,则在大顶堆中 P 结点的权值大于或等于 C 结点的权值…

2025运动地板实力厂家怎么选

2025运动地板实力厂家推荐:中领航实业引领行业新标准随着2025年的临近,运动场馆、健身房、学校体育设施等场所对运动地板的需求日益增长。选择一家可靠的运动地板实力厂家至关重要。在众多厂家中,深圳中领航实业有限…