CF每日一题系列 —— 415A
Posted df-yimeng
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CF每日一题系列 —— 415A相关的知识,希望对你有一定的参考价值。
http://codeforces.com/problemset/page/7?order=BY_SOLVED_DESC
从5000以内选的,emmm还是比较水的哈
时间还是有的,所以万事万物贵在坚持,希望能坚持下去!
Describe:
1 - n个灯线性排列(初始为开),小明可以选择开关 op,这回把op - n 的灯全部关闭,如果(是关着的状态没有影响)
给你小明选择op的操作顺序,输出顺序输出每个灯是由哪个op操作关了的
Solution:
跑暴力就好了,我用了一个比较水的优化,记录当前op的最小值,我只用识别比当前最小值的op小的操作就好了,输出的时候加个判断就好
#include <iostream> #include <cstdio> #include <cstring> using namespace std; const int maxn = 1e4; int r[maxn]; int main() { int n,m; while(~scanf("%d%d",&n,&m)) { memset(r,0,sizeof(r)); int op; int flagmin = n+1; for(int i = 1;i <= m;++i) { scanf("%d",&op); if(op < flagmin){ r[op] = op; flagmin = op; } } int out = r[1]; printf("%d",out); for(int i = 2;i <= n;++i) { if(r[i] != 0){ printf(" %d",r[i]); out = r[i]; } else printf(" %d",out); } printf(" "); } return 0; }
以上是关于CF每日一题系列 —— 415A的主要内容,如果未能解决你的问题,请参考以下文章