NOIP 模拟赛 9

news/2025/11/17 22:18:39/文章来源:https://www.cnblogs.com/MyShiroko/p/19234632

NOIP 模拟赛总结

NOIP 模拟赛 9

调了一整场的 T2,样例全过!只有 40 pts。QxQ

T1 卡门

连续两场 T1 放数据结构了欸

数据结构题,直接分块就行。

赛时没算时间复杂度,导致打了个暴力交上去以为是正解。

赛后半小时改完,挂挂挂!

点击查看代码
#include <stdio.h>
#include <vector>
#include <iostream>
#include <string.h>
#include <algorithm>
#include <cmath>
#define con putchar_unlocked(' ')
#define ent putchar_unlocked('\n')
#define Blue_Archive return 0
using namespace std;
constexpr int N = 3e4 + 3;
constexpr int B = 175;
constexpr int M = 31;
constexpr int me = 0x0d000721;int n;	
int m;
int K;
int ans;
int len;
int L[B];
int R[B];
int id[N];pair<int,int> to[B][M];int mp[N][M];inline void dfs_init(int x,int y,int dep,pair<int,int>&op)
{if(x == dep) return void(op = {x,y});if(!mp[x + 1][y]) dfs_init(x + 1,y,dep,op);else if(mp[x + 1][y] == 2){if(y > 1 && !mp[x][y - 1] && !mp[x + 1][y - 1]) dfs_init(x,y - 1,dep,op);else if(y < m && !mp[x][y + 1] && !mp[x + 1][y + 1]) dfs_init(x,y + 1,dep,op);else return void(op = {x,y});}else return void(op = {x,y});
}inline void init()
{int len = sqrt(n);for(int i = 1;i <= n;i ++){id[i] = (i - 1) / len + 1;if(!L[id[i]]) L[id[i]] = i;R[id[i]] = i;}for(int i = 1;i < id[n];i ++){for(int j = 1;j <= m;j ++){dfs_init(L[i],j,R[i] + 1,to[i][j]);}}for(int i = 1;i <= m;i ++) dfs_init(L[id[n]],i,n,to[id[n]][i]);
}inline void query(int x)
{int now = x;int op = 0;for(int i = 1;i <= id[n];i ++){if(to[i][now].first != R[i] + 1) break;op = i;now = to[i][now].second;}op ++;mp[to[op][now].first][to[op][now].second] = 2;if(to[op][now].first == L[op]){for(int i = 1;i <= m;i ++){if(to[op - 1][i].first == L[op] && to[op - 1][i].second == to[op][now].second) dfs_init(L[op - 1],i,R[op - 1] + 1,to[op - 1][i]);}}for(int i = 1;i <= m;i ++){dfs_init(L[op],i,min(R[op] + 1,n),to[op][i]);}
}signed main()
{freopen("kamen.in","r",stdin);freopen("kamen.out","w",stdout);// freopen("data.in","r",stdin);freopen("data.out","w",stdout);ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);cin >> n >> m;char op;for(int i = 1;i <= n;i ++){for(int j = 1;j <= m;j ++){cin >> op;mp[i][j] = (op == '.') ? 0 : 1;}}init();cin >> K;for(int i = 1,x;i <= K;i ++){cin >> x;query(x);}for(int i = 1;i <= n;i ++){for(int j = 1;j <= m;j ++){if(mp[i][j] == 0) cout << '.';else if(mp[i][j] == 1) cout << 'X';else if(mp[i][j] == 2) cout << 'O';}cout << '\n';}Blue_Archive;
}

T2 商人

5 个样例全过,只得 40 pts,qwq。

考虑建反图

点击查看代码
#include <stdio.h>
#include <vector>
#include <iostream>
#include <string.h>
#include <algorithm>
#include <bitset>
#include <queue>
#define int long long 
#define add(u,v) to[++ tot] = v,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 = 2e5 + 3;
constexpr int me = 0x0d00721;
constexpr int INF = 1e9;int n;
int m;
int tot;
int h[N];
int in[N];
int to[N];
int nxt[N];
int ans[N];bitset<N> vis;queue<int> q;struct miku
{int x,y,r,p;friend bool operator < (miku a,miku b){return a.r < b.r;}
}eg[N];signed main()
{freopen("merchant.in","r",stdin);freopen("merchant.out","w",stdout);// freopen("data.in","r",stdin);freopen("data.out","w",stdout);ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);cin >> n >> m;for(int i = 1,x,y,r,p;i <= m;i ++){cin >> x >> y >> r >> p;eg[i] = {x,y,r,p};in[x] ++;}memset(ans,0x3f,sizeof(ans));sort(eg + 1,eg + m + 1);for(int i = 1;i <= m;i ++) add(eg[i].y,i);for(int i = 1;i <= n;i ++) if(!in[i]) q.push(i);for(int i = m;i >= 1;i --){while(!q.empty()){int u = q.front();q.pop();for(int j = h[u];j;j = nxt[j]){if(vis[to[j]]) continue;vis[to[j]] = 1;-- in[eg[to[j]].x];if(!in[eg[to[j]].x]) q.push(eg[to[j]].x);if(ans[u] < INF) ans[eg[to[j]].x] = min(ans[eg[to[j]].x],max(eg[to[j]].r,ans[u] - eg[to[j]].p));}}if(!vis[i]){vis[i] = 1;-- in[eg[i].x];if(!in[eg[i].x]) q.push(eg[i].x);ans[eg[i].x] = min(ans[eg[i].x],eg[i].r);}}for(int i = 1;i <= n;i ++) cout << ((ans[i] > INF) ? -1 : ans[i]) << ' ';Blue_Archive;
}

T3:自行车

不会,咕咕。

T4: 记忆

不会,咕咕。

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

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

相关文章

Sora 2 Cameo多角色上传+Remix二创功能API接入教程,史低0.08/条

​ 你还记得Sora2推出的Cameo和Remix功能吗? Cameo(客串)是 Sora 2 推出的官方真人出镜功能,允许用户通过录制验证视频,将自己的面部、体型、声音特征提取并融合到 AI 生成的任意场景中,实现"真人演员+虚拟场景…

info linux

当然可以!你提到的 + #引号 + info linux + #引号 + 是一个在 Linux 系统中常用的命令,用于查看 Linux 内核的文档。它属于 info 命令集,是 man 命令的替代品,主要用于查看系统级的文档。 一、info 命令简介…

AWS云服务深度集成

第一部分:素材管理系统 - 分片上传与断点续传架构 在海量素材上传场景下,网络不稳定、文件巨大(数GB的视频/设计稿)是常态。直接简单上传会导致频繁失败且难以恢复。我们基于 AWS S3 Pre-signed URLs 和 Multipart…

httpd linux 启动

在 Linux 系统中,httpd 通常指的是 Apache HTTP Server,它是一个常用的 Web 服务器软件。如果你想要启动 Apache HTTP Server,可以使用以下几种常见方法:方法一:使用 systemd(适用于大多数现代 Linux 发行版) s…

浅谈 Manacher

问题引入 给定一个长度为 \(n\) 的字符串 \(s\),保证 \(s\) 只由小写字母组成,要求计算出 \(s\) 中最长的连续回文子串的长度。 乍一看,诶我会 \(O(n^3)\) 做法!枚举左右端点然后暴力判断就行。 但是这也太慢了吧!…

第28天(简单题中等题 二分查找)

打卡第二十八天 1道简单题+2道中等题题目:思路:双指针+二分查找 代码: class Solution { public:vector<int> kthSmallestPrimeFraction(vector<int>& arr, int k) {const int n = (int)arr.size();//…

基于MIMO系统的SCMA稀疏码多址接入和MPA消息传递算法matlab仿真

1.算法运行效果图预览2.算法运行软件版本 matlab2022a/matlab2024b 3.部分核心程序 (完整版代码包含详细中文注释和操作步骤视频)................................................................r = de2bi(X, l…

Node.js服务稳定性保障:从热更新到高可用体系

好的,这些问题深入到了Node.js后端架构的核心。下面我将为您系统地拆解这些挑战和我们的解决方案。Node.js服务稳定性保障:从热更新到高可用体系 第一部分:渲染服务的热更新原理与高并发保障 我们的官网/商城渲染服…

一次尝试,3个小时90元的主机游玩和F1电影

一次尝试,3个小时90元的主机游玩和F1电影2025年11月16日 星期日 早上去中影烽禾影城泛悦奥莱店(马房山店),花了90块钱,在PS5上面玩了将近三个小时的风之旅人,比我想象之中的还要可怕,我的忘性大的吓人,除了那个红…

NOIP 模拟赛 8

呜呜呜,直接叫 T1 模拟赛吧。NOIP 模拟赛总结 NOIP 模拟赛 8呜呜呜,直接叫 T1 模拟赛吧。T1 王哥与荷塘(fish) 发现要求的是曼哈顿距离的最远点对。 根据 HZ战神 王战普老师的教导可知。 任意两点的曼哈顿距离可以…

静态路由的配置

11.17配置静态路由实验1、拓扑结构:两台PC机,两台交换机Router 2、连线:PC与Router交叉线连接FastEthernet0/0 Router之间DCE串口线连接Serial2/0口 3、打开接口 Router0和Router1 enable //进入特权模式 config…

读书笔记:“外部表”的进阶使用,它主要解决了三个核心问题:如何切换文件、多用户怎么办,以及一个非常酷的玩法——把系统命令变成表。

我们的文章会在微信公众号IT民工的龙马人生和博客网站( www.htz.pw )同步更新 ,欢迎关注收藏,也欢迎大家转载,但是请在文章开始地方标注文章出处,谢谢! 由于博客中有大量代码,通过页面浏览效果更佳。本文为个人学…

[CF 2166D] Marble Council

思路 肯定是在值域上处理, 类似今年 S T4 的将与未扫描部分相关的部分单独统计 定义 \(c_x\) 为 \(a_i = x\) 的数量 考虑 \(f_{i, j, k}\) 表示考虑到数字 \(i\), 当前要求容量到 \(j\), 当前容量为 \(k\) 的方案数 \…

DP 复习

背包 DP 背包 dp 解决形如用一些物品,有一些限制,装满这个容量的方案/最小代价。 四种板子01背包,循环从高到低 完全背包,循环从低到高 多重背包,二进制分组(低到高)然后01背包 分组背包,每组在最内层,外层跑…

一段话 UOJ

UOJ 比赛胡做UOJ Test Round #1 开始了。 vfk的数据 除了编号的前后缀都一样,长度为第一关键字,字典序为第二关键字排序即可。 这样不需要进行字符串的处理。 record pyx的难题 假定 \(p_x=-1\) 是从 \(S\) 开始考虑…

PG系列:在 ​​psql​​ 客户端中定义参数与动态赋值

我们的文章会在微信公众号IT民工的龙马人生和博客网站( www.htz.pw )同步更新 ,欢迎关注收藏,也欢迎大家转载,但是请在文章开始地方标注文章出处,谢谢! 由于博客中有大量代码,通过页面浏览效果更佳。作为一名长期…

CF1375G Tree Modification 题解

\(\text{CF1375G Tree Modification 题解}\) 相当能引起思考的题目,这里给出两种方法。 首先这个操作相当于把一个节点的孙子及这个孙子的儿子拽上来作为它的儿子,这样的话从下往上合并一定是最优的。那么容易想到的…

AI评价11月17号

AI评价11月17号评: 文章立意准确,抓住了“科技普惠”与“人文关怀”的核心矛盾,并提出了解决问题的方向。但文章在逻辑结构、论证深度和语言表达上存在明显短板,影响了整体得分。 综合得分:65分(满分100分,按申…

避雷:aicodemirror.com --- 酒干倘卖无

避雷:aicodemirror.com --- 酒干倘卖无先是宣传说免费KEY可申请,申请好了送了积分,好不容易配置好Claude, 连上却说免费的用不了。 广告宣传充值赠积分(11点),结果充了值,说积分不送了(10点截止),我说送不了…

9-线性学习

9-线性学习线性学习 线性回归 基本思想:先求出损失函数的最小值,然后找出对应的直线,求出直线参数a和b的值,得到线性回归方程。 就是运用直线来描述数据之间关系的一种算法。 变量之间的关系有函数关系和相关关系。…