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

题解:P10257 [COCI 2023/2024 #5] Zlagalica

远古时期做的题了没想到竟然能写题解。

思路

模拟。其实题面已经把思路给出来了,强行覆盖即可。
这里只讲几个需要注意的点。

  1. 因为没有限制高度,所以把初始点放在最中间(旁边也可以),输出的时候像四周找就可以了。
  2. 拼的时候四个角的坐标别算错了。
  3. 因为 \(1\),所以数组要开大一点。
点击查看代码
#include<iostream>
using namespace std;
char ans[5005][5005];
int n , x[25] , ll = 0x3f3f3f3f , lr , hr , leftx , lefty;
struct node{char c;int r , s , u , d;
}cnt[25] , a[25];
int main(){
//	freopen("a.in","r",stdin);
//	freopen("a.out","w",stdout);ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);cin >> n;for(int i=1;i<=n;i++)cin >> cnt[i].c >> cnt[i].r >> cnt[i].s >> cnt[i].u >> cnt[i].d;for(int i=1;i<=n;i++)cin >> x[i];for(int i=1;i<=n;i++)a[i] = cnt[x[i]];for(int i=1;i<=a[1].r;i++){for(int j=1;j<=a[1].s;j++)ans[i+1000][j] = a[1].c , ll = min(ll,i+1000) , lr = max(lr,i+1000) , hr = max(hr,j);}leftx = a[1].r + 1000 , lefty = 1;for(int i=2;i<=n;i++){if(a[i-1].u==0){int x = leftx - a[i-1].r , y = lefty + a[i-1].d - 1;for(int xx=x-a[i].r+1;xx<=x;xx++){for(int yy=y;yy<=y+a[i].s-1;yy++){ans[xx][yy] = a[i].c , ll = min(ll,xx) , lr = max(lr,xx) , hr = max(hr,yy);}}leftx = x , lefty = y;}else{int x = leftx - a[i-1].r + a[i-1].d , y = lefty + a[i-1].s;for(int xx=x-a[i].r+1;xx<=x;xx++){for(int yy=y;yy<=y+a[i].s-1;yy++){ans[xx][yy] = a[i].c , ll = min(ll,xx) , lr = max(lr,xx) , hr = max(hr,yy);}}leftx = x , lefty = y;}}cout << lr - ll + 1 << " " << hr << "\n";for(int i=ll;i<=lr;i++){for(int j=1;j<=hr;j++){if(ans[i][j]>='a'&&ans[i][j]<='z')cout << ans[i][j];else cout << ".";}cout << "\n";}return 0;
}
http://www.gsyq.cn/news/27913.html

相关文章:

  • CRM的终结与重生:基于SOP的一体化企业协同新范式
  • Python随笔(第一周)
  • 我在政和一中的求学岁月(1993-1997)
  • 互测记录
  • 读AI赋能07基准测试
  • 比特币闪电网络开源项目
  • [windows xp] 还能在xp上使用的浏览器
  • tryhackme-网络安全基础-命令行- windows命令行-21
  • 图像分割和目标跟踪 - MKT
  • ESP32 + INMP441数字麦克风 可以做哪些有趣的应用
  • Solon v3.4.7, v3.5.6, v3.6.1 发布(国产优秀应用开发框架)
  • CF1430C Numbers on Whiteboard
  • SAP实施专家指南:SAP B1 如何优化成本与缩短项目周期?
  • MIT6.824-MapReduce
  • 从0到1自定义文字排版引擎:原理篇
  • 中小企业数字化转型难?低代码的轻量化破局方案
  • 幂是任意常数的二项式定理
  • 2025年公众号编辑器排版还很难?如何用公众号编辑器做出精美文章?
  • 1022
  • 兰博平台诸葛亮
  • LAUNCH Easydiag 3.0 Support Bluetooth Work with Android /IOS Update Version of EasyDiag 2.0
  • 20232428 2025-2026-1 《网络与系统攻防技术》实验二实验报告
  • 20234320 2025-2026-1 《网络与系统攻防技术》实验二实验报告
  • 第2天(简单题中等题 取余、因数与倍数、数组 矩阵、数组 字符串)
  • 2025.10.22总结
  • 算法第二章实践作业
  • 软考中级学习总结(4)
  • docker: Error response from daemon: failed to set up container networking 解决办法
  • “化零为整”的智慧:内存池如何绕过系统调用和GC,构建性能的护城河
  • 实验2 现代C++编程初体验