Gym
来源:互联网 发布:cnmd是什么意思网络 编辑:程序博客网 时间:2024/06/04 19:58
算是贪心算法吧
首先预处理,存在 ** 的点赋值为 1,其他的为 0
然后用一个 “滑动窗口” 记录左右边界 以及内部的 sum 也就是 **个数
#include <iostream>#include <cstdio>#include <cstdlib>#include <cstring>#include <string>#include <cmath>#include <set>#include <map>#include <stack>#include <queue>#include <ctype.h>#include <vector>#include <algorithm>#include <sstream>#define PI acos(-1.0)#define in freopen("in.txt", "r", stdin)#define out freopen("out.txt", "w", stdout)using namespace std;typedef long long ll;const int maxn = 100 + 7, INF = 0x3f3f3f3f;int ac[maxn];int main() { ios::sync_with_stdio(0); int n,k,r, x; cin>>n>>k>>r; memset(ac, 0, sizeof ac); for (int i=0; i<k; i++) { cin>>x; ac[x] = 1; } int sum = 0, L = 1, R = r; for(int i = 1; i <= r; ++i) sum += ac[i]; int ans = 0; for( ; R <= n; ++R, ++L) { if(L != 1 && ac[L-1] == 1) sum--; if(R != r && ac[R] == 1) sum ++; if(sum == 1) { sum ++; if(ac[R] == 0) ac[R] = 1; else { ac[R-1] = 1; } ans ++; } else if(sum == 0) { ac[R] = 1; ac[R-1] = 1; ans += 2; sum += 2; } } cout << ans << endl; return 0;}
阅读全文
1 0
- Gym
- Gym
- Gym
- Gym
- Gym
- Gym
- Gym
- Gym
- Gym
- Gym
- Gym
- Gym
- Gym
- Gym
- Gym
- Gym
- Gym
- Gym
- python “Use of super on an old style class”的解决办法
- Java高级架构,java8新特性,P2P金融项目
- Django在admin后台集成TinyMCE富文本编辑器
- POJ3281 Dining
- 归并排序
- Gym
- ubuntu 安装Adobe Reader
- JAVA课程1hola,word
- Servlet 上下文数据共享
- C语言初步-第36讲: 用循环处理文字(血型统计 )
- python基础入门三
- 程序设计,功能设计,数据库设计,第三方支付,web安全
- cocos2dx-lua sqlite3使用
- Windbg定位异常系列