水 A - Alena's Schedule

/************************************************
* Author :Running_Time
* Created Time :2015/10/12 星期一 16:49:42
* File Name :A.cpp
************************************************/ #include <cstdio>
#include <algorithm>
#include <iostream>
#include <sstream>
#include <cstring>
#include <cmath>
#include <string>
#include <vector>
#include <queue>
#include <deque>
#include <stack>
#include <list>
#include <map>
#include <set>
#include <bitset>
#include <cstdlib>
#include <ctime>
using namespace std; #define lson l, mid, rt << 1
#define rson mid + 1, r, rt << 1 | 1
typedef long long ll;
const int N = 1e2 + 10;
const int INF = 0x3f3f3f3f;
const int MOD = 1e9 + 7;
const double EPS = 1e-8;
int a[N]; int main(void) {
int n; scanf ("%d", &n);
for (int i=1; i<=n; ++i) {
scanf ("%d", &a[i]);
}
int ans = 0, i = 1;
bool fir = true;
while (i <= n) {
if (a[i] == 0) {
if (fir) {
i++; continue;
}
else {
int j = i + 1;
while (j <= n) {
if (a[j] == 0) {
j++;
}
else break;
}
if (j == n + 1) break;
if (j - i >= 2) {
i = j; continue;
}
else {
ans += j - i;
i = j;
}
}
}
else { //a[i] = 1;
fir = false;
ans++; i++;
}
}
printf ("%d\n", ans); return 0;
}

  

水 B - Laurenty and Shop

/************************************************
* Author :Running_Time
* Created Time :2015/10/12 星期一 16:49:42
* File Name :B.cpp
************************************************/ #include <cstdio>
#include <algorithm>
#include <iostream>
#include <sstream>
#include <cstring>
#include <cmath>
#include <string>
#include <vector>
#include <queue>
#include <deque>
#include <stack>
#include <list>
#include <map>
#include <set>
#include <bitset>
#include <cstdlib>
#include <ctime>
using namespace std; #define lson l, mid, rt << 1
#define rson mid + 1, r, rt << 1 | 1
typedef long long ll;
const int N = 55;
const int INF = 0x3f3f3f3f;
const int MOD = 1e9 + 7;
const double EPS = 1e-8;
int a1[N], a2[N], b[N];
int sum1[N], sum2[N];
bool vis[N]; int main(void) {
int n; scanf ("%d", &n);
for (int i=1; i<n; ++i) {
scanf ("%d", &a1[i]);
}
for (int i=1; i<n; ++i) {
scanf ("%d", &a2[i]);
}
for (int i=1; i<=n; ++i) {
scanf ("%d", &b[i]);
} if (n == 2) {
printf ("%d\n", a1[1] + a2[1] + b[1] + b[2]);
return 0;
} for (int i=1; i<n; ++i) {
sum1[i] = sum1[i-1] + a1[i];
}
for (int i=n-1; i>=1; --i) {
sum2[i] = sum2[i+1] + a2[i];
}
int mn = INF, id = 0;
int ans = 0;
for (int i=0; i<n; ++i) {
if (sum1[i] + b[i+1] + sum2[i+1] < mn) {
mn = sum1[i] + b[i+1] + sum2[i+1];
id = i;
}
}
vis[id] = true; ans += mn;
mn = INF, id = 0;
for (int i=0; i<n; ++i) {
if (sum1[i] + b[i+1] + sum2[i+1] < mn && !vis[i]) {
mn = sum1[i] + b[i+1] + sum2[i+1];
id = i;
}
}
ans += mn;
printf ("%d\n", ans); return 0;
}

  

暴力+队列 C - Gennady the Dentist

题意:小孩子排队看医生,有一定的连锁反应,问医生最后能治好多少人

分析:开始想用D保存d[]的和,无奈被hack掉了,还是老老实实用队列吧

/************************************************
* Author :Running_Time
* Created Time :2015/10/12 星期一 16:49:42
* File Name :C.cpp
************************************************/ #include <cstdio>
#include <algorithm>
#include <iostream>
#include <sstream>
#include <cstring>
#include <cmath>
#include <string>
#include <vector>
#include <queue>
#include <deque>
#include <stack>
#include <list>
#include <map>
#include <set>
#include <bitset>
#include <cstdlib>
#include <ctime>
using namespace std; #define lson l, mid, rt << 1
#define rson mid + 1, r, rt << 1 | 1
typedef long long ll;
const int N = 4e3 + 10;
const int INF = 0x3f3f3f3f;
const int MOD = 1e9 + 7;
const double EPS = 1e-8;
int v[N], d[N], p[N];
bool dead[N]; int main(void) {
int n; scanf ("%d", &n);
for (int i=1; i<=n; ++i) {
scanf ("%d%d%d", &v[i], &d[i], &p[i]);
dead[i] = false;
}
vector<int> ans;
queue<int> Q;
for (int i=1; i<=n; ++i) {
if (!dead[i]) {
ans.push_back (i);
for (int j=i+1; j<=n; ++j) {
if (dead[j]) continue;
p[j] -= v[i]; v[i]--;
if (p[j] < 0) {
dead[j] = true;
Q.push (j);
}
if (v[i] <= 0) break;
}
}
while (!Q.empty ()) {
int x = Q.front (); Q.pop ();
for (int j=x+1; j<=n; ++j) {
if (dead[j]) continue;
p[j] -= d[x];
if (p[j] < 0) {
dead[j] = true;
Q.push (j);
}
}
}
} printf ("%d\n", ans.size ());
for (int i=0; i<ans.size (); ++i) {
printf ("%d%c", ans[i], i == ans.size () - 1 ? '\n' : ' ');
} return 0;
}

  

BFS D - Phillip and Trains

题意:一个人从左边走到右边,同时有列车从右边开过来,问这个人能否达到右边没有碰到列车

分析:简答的BFS,车看作不动,人相对车有一个相对运动,还是要用vis标记已访问过的点,比赛时这点忘了,MLE了

/************************************************
* Author :Running_Time
* Created Time :2015/10/12 星期一 16:49:42
* File Name :D.cpp
************************************************/ #include <cstdio>
#include <algorithm>
#include <iostream>
#include <sstream>
#include <cstring>
#include <cmath>
#include <string>
#include <vector>
#include <queue>
#include <deque>
#include <stack>
#include <list>
#include <map>
#include <set>
#include <bitset>
#include <cstdlib>
#include <ctime>
using namespace std; #define lson l, mid, rt << 1
#define rson mid + 1, r, rt << 1 | 1
typedef long long ll;
const int N = 1e2 + 10;
const int INF = 0x3f3f3f3f;
const int MOD = 1e9 + 7;
const double EPS = 1e-8;
char maze[4][N];
bool vis[4][N];
int dx[3] = {-1, 0, 1};
int n, k; bool BFS(int sx, int sy) {
queue<pair<int, int> > Q; Q.push (make_pair (sx, sy));
memset (vis, false, sizeof (vis)); vis[sx][sy] = true;
while (!Q.empty ()) {
int x = Q.front ().first, y = Q.front ().second; Q.pop ();
if (y >= n) return true;
if (y + 1 <= n && maze[x][y+1] != '.') continue;
for (int i=0; i<3; ++i) {
int tx = x + dx[i], ty = y + 1;
if (tx < 1 || tx > 3 || maze[tx][ty] != '.') continue;
ty += 1;
if (ty <= n && maze[tx][ty] != '.') continue;
ty += 1;
if (ty <= n && maze[tx][ty] != '.') continue;
if (vis[tx][ty]) continue;
vis[tx][ty] = true;
Q.push (make_pair (tx, ty));
}
}
return false;
} int main(void) {
int T; scanf ("%d", &T);
while (T--) {
scanf ("%d%d", &n, &k);
for (int i=1; i<=3; ++i) {
scanf ("%s", maze[i] + 1);
}
int sx = 0, sy = 0;
for (int i=1; i<=3; ++i) {
if (maze[i][1] == 's') {
sx = i; sy = 1;
break;
}
}
for (int i=n+1; i<=n+6; ++i) {
maze[1][i] = maze[2][i] = maze[3][i] = '.';
}
printf ("%s\n", BFS (sx, sy) ? "YES" : "NO");
} return 0;
}

  

Codeforces Round #325 (Div. 2)的更多相关文章

  1. Codeforces Round #325 (Div. 2) F. Lizard Era: Beginning meet in the mid

    F. Lizard Era: Beginning Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/5 ...

  2. Codeforces Round #325 (Div. 2) D. Phillip and Trains BFS

    D. Phillip and Trains Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/586/ ...

  3. Codeforces Round #325 (Div. 2) C. Gennady the Dentist 暴力

    C. Gennady the Dentist Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/586 ...

  4. Codeforces Round #325 (Div. 2) A. Alena's Schedule 水题

    A. Alena's Schedule Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/586/pr ...

  5. Codeforces Round #325 (Div. 2) B. Laurenty and Shop 前缀和

    B. Laurenty and Shop Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/586/p ...

  6. Codeforces Round #325 (Div. 2) Phillip and Trains dp

    原题连接:http://codeforces.com/contest/586/problem/D 题意: 就大家都玩过地铁奔跑这个游戏(我没玩过),然后给你个当前的地铁的状况,让你判断人是否能够出去. ...

  7. Codeforces Round #325 (Div. 2) Laurenty and Shop 模拟

    原题链接:http://codeforces.com/contest/586/problem/B 题意: 大概就是给你一个两行的路,让你寻找一个来回的最短路,并且不能走重复的路. 题解: 就枚举上下选 ...

  8. Codeforces Round #325 (Div. 2) Alena's Schedule 模拟

    原题链接:http://codeforces.com/contest/586/problem/A 题意: 大概就是给你个序列..瞎比让你统计统计什么长度 题解: 就瞎比搞搞就好 代码: #includ ...

  9. Codeforces Round #325 (Div. 2) D bfs

    D. Phillip and Trains time limit per test 1 second memory limit per test 256 megabytes input standar ...

  10. Codeforces Round #325 (Div. 1) D. Lizard Era: Beginning

    折半搜索,先搜索一半的数字,记录第一个人的值,第二个人.第三个人和第一个人的差值,开个map哈希存一下,然后另一半搜完直接根据差值查找前一半的答案. 代码 #include<cstdio> ...

随机推荐

  1. 启用了不安全的HTTP方法解决办法 IBM APPSCAN

    启用了不安全的HTTP方法解决办法  IBM APPSCAN     安全风险:       可能会在Web 服务器上上载.修改或删除Web 页面.脚本和文件. 可能原因:       Web 服务器 ...

  2. CSS3 弹性盒子(Flex Box) 微信小程序图片通栏

    {{define "chkUrl"}} <!DOCTYPE html><html lang="zh-cmn-Hans"><head ...

  3. Cocos Console命令总结

    1. 工程创建 使用Cocos Console创建工程非常简单,安装完cocos命令之后,只需要在需要创建工程的目标目录下打开终端或命令行工具,输入下面的命令即可: cocos new -l js P ...

  4. C# delegate Action<T> lambda表达式

    转载以记录:http://blog.csdn.net/educast/article/details/7219854 在使用 Action<T> 委托时,不必显式定义一个封装只有一个参数的 ...

  5. adb获取Android系统属性(adb shell getprop ***)数据来源

    在Android系统中,它的根文件系统下有几个用于启动系统时需要的配置文件: /init.rc /default.prop /system/build.prop 通常我们可以通过命令getprop获取 ...

  6. PLSQL 安装说明

    PLSQL安装说明. 1.安装oracle 11g ,2030端口设置防火墙例外.2.PLSQL Developer 9.0.0.1601是绿色版,复制到本地即可.3.PLSQL->Tools- ...

  7. Python(2)(基本输入输出语句)

    我们先来说输出:

  8. [Selenium] Selenium私房菜(新手入门教程)

    http://wenku.baidu.com/link?url=JrHF9o0mKWcpEsE-wijcZaneBWgpmAJPRwGyWXd7RvqzJCLLrsrsv5lf9bPRmgKUa_v- ...

  9. 【NOIP2017 DAY1T2】 时间复杂度

    [题目链接] 点击打开链接 [算法] 其实这就是一道模拟题啦! 在判error和计算时间复杂度时,我们需要用栈这种数据结构 [代码] 这题的代码还是有些难写的,写的时候一定要有条理! #include ...

  10. bzoj 4260 REBXOR —— Trie树

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4260 用 Trie 树可以找出前缀异或的最大值和后缀异或的最大值,拼起来即可: 注意要先加入 ...