CF412A Poster
较水的贪心+模拟,而且没感觉有多少细节啊。
贪心策略
尽量让画家到达一个端点,然后依次画到另一边。
这样就可以保证移动距离是
我们知道,
那么为了达成这个方案,就要移动到更近的端点。
这样就可以保证方案是最优的。
实现思路
找个
如果
否则就找右端点,然后往左画。
如果非要说有细节,那就这么几个:
- 因为下标从 1 开始,可以在字符串前面加个占位符。
- 注意 while 循环的条件。
- 注意画最短点的字符。
#include <iostream> #include <string> #define l cout << "LEFT" << endl, --k #define r cout << "RIGHT" << endl, ++k; #define p(x) cout << "PRINT " << s[x] << endl using namespace std; int n, k, mid;string s; int main() { cin >> n >> k >> s; s = ' ' + s;mid = n >> 1; if(k <= mid) { while(k > 1) l; while(k < n) p(k), r; p(n); } else { while(k < n) r; while(k > 1) p(k), l; p(1); } return 0; }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具