2025天梯赛校内第二场排位赛

news/2025/3/27 11:17:20/文章来源:https://www.cnblogs.com/mubai666/p/18789687

这一次的排位赛比较简单,所以只挑了 7-8 和 7-12

7-8

2014 年哈佛-麻省理工数学竞赛中一道题是这样的:将正整数 1, 2, ..., 64 填入 8×8 的方格棋盘中,使得对任何 1≤i<64,i 和 i+1 都必须填在两个具有公共边的方格中。求棋盘上对角线中所填数的和的最大值。(注意:两个对角线都要考虑;64 和1 也必须填在两个具有公共边的方格中。)
这题有点难…… 幸好我们并不要求你写程序解决这个问题。
你的任务是:对任一给定的数字填充方案,判定其是否满足填充的条件,并且在所有给出的方案中,找出满足条件的、且对角线数字和最大的那个方案。

\(\qquad\) 对于这一道题,我们可以选择用模拟的方式,只需要枚举每一个 i 的上下左右四个偏移量看是否存在 i+1 即可,值得注意的是,对于 n*n 我们需要寻找的是四个偏移量中是否存在 1.
\(\qquad\) 然后就是这道题最大的一个毒点,测试点 2,19分的应该基本上都是WA在这里了。这一个测试点的要求为,当不存在符合要求的矩阵时,不仅要输出0,还要输出两个换行。

#include <bits/stdc++.h>using namespace std;#define pii pair<int, int>
int dx[] = {-1, 1, 0, 0};
int dy[] = {0, 0, -1, 1};int main(){int n, m;cin >> n >> m;priority_queue<pii> q;//bool vis[n+1][n+1];vector<vector<int>> g(n+1, vector<int>(n+1));int cnt = 0;while(m--){cnt++;//memset(vis, 0, sizeof(vis));for(int i = 1; i <= n; i ++ ){for(int j = 1; j <= n; j ++ ){cin >> g[i][j];}}bool fg = 1;for(int i = 1; i <= n; i ++ ){for(int j = 1; j <= n; j ++ ){int s = 0;// if(g[i][j] == n*n) continue;// for(int k = 0; k < 4; k ++ ){//     int nx = i + dx[k], ny = j + dy[k];//     if(nx < 1 || nx > n || ny < 1 || ny > n) continue;//     if(g[nx][ny] == g[i][j] + 1) s++;// }if(g[i][j] == n*n){for(int k = 0; k < 4; k ++ ){int nx = i + dx[k], ny = j + dy[k];if(nx < 1 || nx > n || ny < 1 || ny > n) continue;if(g[nx][ny] == 1) s++;}} else {for(int k = 0; k < 4; k ++ ){int nx = i + dx[k], ny = j + dy[k];if(nx < 1 || nx > n || ny < 1 || ny > n) continue;if(g[nx][ny] == g[i][j] + 1) s++;}}if(!s) fg = 0;}}if(!fg) continue;int ans1 = 0, ans2 = 0;for(int i = 1; i <= n; i ++ ) ans1 += g[i][i];for(int i = n, j = 1; i >= 1; i -- , j ++ ) ans2 += g[j][i];int ans = max(ans1, ans2);q.push({ans, cnt});}// while(q.size()){//     auto t = q.top();q.pop();//     cout << t.second << ' ';// }// cout << q.size() << endl;if(q.empty()){cout << 0 << endl; cout << endl; return 0;} //没有符合要求的要输出两个换行int maxx = q.top().first;int ans = 0;vector<int> res;while(q.size() && q.top().first == maxx){ans ++;auto t = q.top(); q.pop();res.push_back(t.second);}cout << ans << endl;sort(res.begin(), res.end());for(int i = 0; i < res.size(); i ++ ){if(i == 0) cout << res[i];else cout << ' ' << res[i];}
}

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

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

相关文章

Itext5生成高质量、易识别、适合小尺寸标签打印的二维码

高质量、易识别、小尺寸二维码生成 1.增大二维码的原始尺寸(例如 1000 x 1000 或更大),再缩放为 PDF 所需的大小。这样可以保留更多像素细节,提高识别率。 2.降低容错级别到 L 或 M,如果你的内容不是特别长或复杂的话,这样能减少密集度。 3.优化缩放方式: • 使用 Buffe…

【Docker】安装部署jenkins

docker安装部署jenkinsdocker安装jenkins  1、下载jenkins  2、创建挂载目录  3、启动jenkins容器  4、验证jenkins是否启动成功  5、获取管理员密码  6、下载安装插件 docker安装jenkins【1】下载jenkins拉取jenkins镜像 docker pull jenkins/jenkins:2.426.2-lts…

焊接保护气体智能调节控制器|节气装置

机器人焊接节气装置在焊接流程中扮演着至关重要的角色,它犹如一道坚实的屏障,为熔融金属营造一个纯净的焊接环境,有效抵御空气中氧气、氮气、水蒸气等不良因素的侵扰。具体而言,保护气体的多重功效可详尽阐述为以下几个层面:对焊缝的精心呵护。在诸如氩弧焊等精密焊接工艺…

线段树+扫描线,解决“静态矩阵加和+矩阵查询”问题

在试图用 CDQ 分治做这道题的时候遇到了一些麻烦,修改全部在查询之前的静态部分不会做,题解虽然还算详细,但是本人蒟蒻仍然无法理解,思考一上午,尝试过各种证明方法后,大致证明题解算法的正确性,记录在这里。先看题解的说法和代码:使用扫描线、线段树和差分离线解决静态…

centOS 上部署hadoop+mysql+hive 服务之mysql 和hive安装

hive默认存放元数据的数据库是Derby数据库,Derby数据库是嵌入式数据库,它只能单用户访问,也就是只能有一个会话连接到元数据存储,不适合多用户连接操作需求。比如,多用户同时进行查询或并发操作时,Derby无法处理,这会导致性能瓶颈或直接报错。因此,建议替换为用mysql在…

Pydantic根校验器:构建跨字段验证系统

title: Pydantic根校验器:构建跨字段验证系统 date: 2025/3/24 updated: 2025/3/24 author: cmdragon excerpt: Pydantic根校验器支持预处理(pre)与后处理(post)模式,可访问全量字段数据并修改值字典。多字段关联验证实现业务规则检查,如航班时间顺序与保险策略联动。分阶…

机器人焊接节气设备

WGFACS(Welding Gas Flow Automatic Control System)机器人焊接气体流量自适应控制系统。机器人焊接节气设备包含高速控制和采集系统与气体流量自适应装置。它专为在保证焊接质量的前提下,实现节能减排、降低用气成本而设计,广泛应用于汽车制造、航空航天、机械加工等多个行业…

做销售,会讲故事,能说服90%的客户!

在开始之前,先抛出一个问题:说服他人最有效的方式是什么? 或许很多人的第一反应是:事实和数据。毕竟,数据被认为是不会说谎的(当然,也存在数据造假的情况),人们似乎也更倾向于相信数据。正因如此,许多销售话术总会包含大量数据,诸如升学率达 xx%、录取率为 xx%、满意…

CSP安全策略与XSS漏洞的关系

CSP与XSS漏洞的关系1、CSP不依赖漏洞的存在: 2、CSP是独立的安全机制,其有效性取决于策略本身的严格性,而非漏洞是否存在。 例如: 严格CSP(基于nonce):即使站点存在XSS漏洞,攻击者也无法伪造合法的 nonce 值来执行脚本。 宽松CSP(允许unsafe-inline):若漏洞存在,攻…

vue项目启动报错---FATAL ERROR js堆内存不足

vue项目启动报错---FATAL ERROR js堆内存不足 估计项目太大 电脑性能扛不住 解决方法如下: 1.启动项目报错 估计是项目太大了 电脑性能不太行FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory 2.白话文---致命…

spring boot项目打包例子

1.进入到spring项目执行 mvn clean package2.这个时候会在target目录下生成如下包 3.运行 java -jar demo-0.0.1-SNAPSHOT.war 4.调用 5.项目目录结构

攻击

sql注入 SQL注入是一种常见的Web应用程序漏洞,攻击者可以利用它来执行恶意的SQL查询,从而绕过身份验证、访问敏感数据或对数据库进行破坏。以下是一些常见的SQL注入攻击语句示例:基本的SQL注入攻击:SELECT * FROM users WHERE username = admin AND password = OR 1=1; Co…