当前位置: 首页 > news >正文

ABC436 题解

A. o-padding

code
#include<bits/stdc++.h>
using namespace std;
int main(){int n;string s,pre = "";cin >> n >> s;for(int i = s.size()+1; i <= n; ++i)pre += 'o';cout << pre << s;
}

B. Magic Square

code
#include<bits/stdc++.h>
using namespace std;
const int NN = 108;
int a[NN][NN];
int n;
int main(){ios::sync_with_stdio(false),cin.tie(0);cin >> n;int x = 0, y = (n-1)/2,cnt = 0;for(int i = 1; i <= n; ++i){for(int j = 1; j <= n; ++j){a[x][y] = ++cnt;if(j != n){x = (n+x-1) % n;y = (y+1) % n;}else{x = (x+1) % n;}}}for(int i = 0; i < n; ++i){for(int j = 0; j < n; ++j){cout << a[i][j] << " ";}cout << endl;}
}

C. 2x2 Placing

不得不说,C 题的实现是有一点困难的

至少在脑袋不够用的情况下卡了本人很久的实现 TAT

就是一个在平面内查询一个点是否被覆盖的问题

code
#include<bits/stdc++.h>
using namespace std;
const int NN = 1e6 + 8;
int n,m;
int fx[9] = {-1,-1,-1,0,0,0,1,1,1};
int fy[9] = {-1,0,1,-1,0,1,-1,0,1};
struct Node{int num;int x,y;bool operator < (const Node &A)const{if(x == A.x){if(y == A.y) return num < A.num;return y <= A.y;}else return x < A.x;}bool operator <= (const Node &A)const{if(x == A.x){if(y == A.y) return num <= A.num;return y <= A.y;}else return x < A.x;}
}a[NN],b[NN];
bool d[NN];
vector<int> now,pre;
int check(int x,int y){int i = lower_bound(b+1,b+1+m,(Node){0,x,y}) - b;if(b[i].x == x && b[i].y == y && d[b[i].num]) return b[i].num;else return 0x3f3f3f3f;
}
int main(){cin >> n >> m;for(int i = 1; i <= m; ++i)cin >> a[i].x >> a[i].y, b[i].x= a[i].x, b[i].y = a[i].y, b[i].num = i;sort(b+1,b+1+m);int ans = 0;for(int i = 1; i <= m; ++i){bool vis = 1;for(int j = 0; j <= 8; ++j)if(check(a[i].x + fx[j],a[i].y + fy[j]) < i){// cout << i << ":" << a[i].x + fx[j] << " " << a[i].y + fy[j] << "get\n";vis = 0;break;}if(vis) d[i] = 1,++ans;}cout << ans << endl;
}

D. Teleport Maze

bfs 即可

code
#include<bits/stdc++.h>
using namespace std;
const int NN = 1e3 + 8;
int H,W;
string s;
int step[NN][NN];
int vis[NN][NN];
int fx[4] = {0,0,1,-1};
int fy[4] = {1,-1,0,0};
struct Node{int x,y;
};
vector<Node> Ch[30];inline int trans(char c){return c-'a'+1;
}
void search(){queue<Node> q;q.push({1,1});step[1][1] = 0;while(!q.empty()){Node u = q.front();q.pop();int ux = u.x, uy = u.y, stu = step[ux][uy];if(vis[ux][uy] != 0){int c = vis[ux][uy];for(auto j : Ch[c]){int vx = j.x, vy = j.y;if(step[vx][vy] == -1){q.push({vx,vy});step[vx][vy] = stu + 1;}}Ch[c].clear();}for(int j = 0; j < 4; ++j){int vx = ux + fx[j], vy = uy + fy[j];if(vx <= 0 || vx > H || vy <= 0 || vy > W) continue;if(step[vx][vy] == -1 && vis[vx][vy] != -1){q.push({vx,vy});step[vx][vy] = stu + 1;}}}
}
int main(){memset(step,-1,sizeof(step));cin >> H >> W;step[1][1] = 0;for(int i = 1; i <= H; ++i){cin >> s;s = ' ' + s;for(int j = 1; j <= W; ++j)if(s[j] == '#'){vis[i][j] = -1;}else if(isalpha(s[j])) Ch[trans(s[j])].push_back({i,j}), vis[i][j] = trans(s[j]);}search();cout << step[H][W];
}

E. Minimum Swap

这道题就是通过排列连边之后,询问最小环的大小

code
#include<bits/stdc++.h>
using namespace std;
const int NN = 3e5 + 8;
int n;
int a[NN],rev[NN];
int main(){cin >> n;for(int i = 1; i <= n; ++i)cin >> a[i];long long ans = 0;for(int i = 1; i <= n; ++i){if(i != a[i]){int cnt = 1;int t = a[i];while(a[i] != i) swap(a[i],a[t]), t = a[i], ++cnt;ans += 1ll * cnt * (cnt-1) / 2;}}cout << ans;
}

F. Starry Landscape Photo

G. Linear Inequation

http://www.gsyq.cn/news/140832.html

相关文章:

  • 想在湖南省衡阳市农村盖房子,靠谱的自建房设计公司口碑推荐 - 苏木2025
  • 从零实现I2C HID设备调试:解决启动代码10的实操步骤
  • 【生产力工具】Ollama 下载安装教程:从零构建本地大模型运行环境 (含模型路径修改) - PC修复电脑医生
  • Apache Parquet 优势与日志应用场景解析
  • 2025年河道护坡砖订制厂家权威推荐榜单:混凝土联锁块/高速护坡砖/挡土砖源头厂家精选 - 品牌推荐官
  • LeagueAkari终极指南:英雄联盟全流程自动化解决方案
  • SillyTavern升级终极指南:零风险数据迁移与快速部署方案
  • 2025年陶瓷筷专业制造商推荐,专业的陶瓷筷厂家全解析 - myqiye
  • 2025年防爆防火柜品牌排名,四门防火柜、易燃易爆防火柜企业推荐与选购指南 - mypinpai
  • anything-llm能否用于舆情预警?社交媒体监听系统构建
  • 3分钟搞定KLayout安装:从新手到专家的完整配置手册
  • 【2025-2026选购指南】高低温低气压试验箱行业权威品牌推荐,应用于电子通信、新能源汽车、航空航天等领域 - 品牌推荐大师1
  • 基于Huber函数和最大相关熵的抗差滤波算法
  • GGUF格式解析
  • python基础-第一周
  • 2025可移动悬挂点焊机定制厂家TOP5权威推荐:深度测评指南 - myqiye
  • GetQzonehistory完整指南:一键备份QQ空间所有历史记录
  • 探秘常熟市东方红木家俱有限公司:产品、技术与价格剖析 - 工业品牌热点
  • 云服务器安装宝塔面板教程 - deng
  • 想在陕西省渭南市农村盖房子,靠谱的自建房公司口碑推荐 - 苏木2025
  • 山东吉时通管道工程有限公司联系方式:技术能力与安全使用提醒 - 品牌推荐
  • 哔哩下载姬DownKyi终极指南:从零开始掌握B站视频下载
  • Gofile下载器终极指南:高效批量下载解决方案
  • 亚马逊云服务器介绍
  • Joy-Con Toolkit:3步解锁Switch手柄隐藏功能
  • 实测腾讯混元HY-World 1.5:虚拟世界的推理实战
  • 云服务器安装宝塔教程
  • 8个AI写作工具,专科生论文格式规范轻松搞定!
  • 基于springboot和vue框架的医院门诊坐诊挂号管理系统_05am16pp功能多-
  • 基于OAuth滥用的定向钓鱼攻击与防御机制研究