codeforces 1214
D
比赛的时候居然看漏了条件。。。
若在(x, y)格子,那么只能移动到(x+1, y)或(x, y+1)
这样的话就好做了,直接dp,然后统计每一种路径长度经过的点数。
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<iostream>
#include<queue>
#include<cmath>
#include<map>
#include<stack>
#include<set>
#include<bitset>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
typedef pair<int, int> pii;
#define pb(x) push_back(x)
#define cls(x, val) memset(x, val, sizeof(x))
#define fi first
#define se second
#define mp(x, y) make_pair(x, y)
#define inc(i, l, r) for(int i=l; i<=r; i++)
const int inf = 0x3f3f3f3f;
const int maxn = 1e6+10;
char a[maxn], b[maxn];
int n, m;
bool vis[maxn], vis1[maxn];
void bfs(int x, int y, bool *vis){
vis[x*m+y] = true;
for(int i=0; i<n; i++){
for(int j=0; j<m; j++){
if(a[i*m+j] == '#') continue;
if(i>=1&&vis[(i-1)*m+j]) vis[i*m+j] = true;
if(j>=1&&vis[i*m+j-1]) vis[i*m+j] = true;
}
}
}
void bfs1(int x, int y, bool *vis){
vis[x*m+y] = true;
for(int i=n-1; i>=0; i--){
for(int j=m-1; j>=0; j--){
if(a[i*m+j] == '#') continue;
if(i<n-1&&vis[(i+1)*m+j]) vis[i*m+j] = true;
if(j<m-1&&vis[i*m+j+1]) vis[i*m+j] = true;
}
}
}
int diag[maxn];
int main(){
ios::sync_with_stdio(false);
scanf("%d%d", &n, &m);
for(int i=0; i<n; i++){
scanf("%s", b);
for(int j=0; j<m; j++)
a[i*m+j]=b[j];
}
bfs(0, 0, vis);
// for(int i=0; i<n; i++){
// for(int j=0; j<m; j++){
// cout<<vis[i*m+j]<<" ";
// }
// cout<<endl;
// }
bfs1(n-1, m-1, vis1);
// for(int i=0; i<n; i++){
// for(int j=0; j<m; j++){
// cout<<vis1[i*m+j]<<" ";
// }
// cout<<endl;
// }
if(vis[(n-1)*m+m-1]==false) {
printf("0\n");
return 0;
}
for(int i=0; i<n; i++){
for(int j=0; j<m; j++){
if(vis[i*m+j]&&vis1[i*m+j]){
//路径长度为i+j经过的点数
diag[i+j]++;
}
}
}
for(int i=1; i<n+m-2; i++){
if(diag[i] == 1){
printf("%d\n", 1);
return 0;
}
}
printf("%d\n", 2);
return 0;
}
E 构造
构造一棵树,使得2i与2i-1两个节点之间的权重为di.
codeforces 1214的更多相关文章
- codeforces -1214 E
题目https://codeforces.com/problemset/problem/1214/E 就是得知奇数之间不产生影响,先造出一条链,再用偶数往里插就行.链要di从大到小排个序呀!! #in ...
- Codeforces 1214 F G H 补题记录
翻开以前打的 #583,水平不够场上只过了五题.最近来补一下题,来记录我sb的调试过程. 估计我这个水平现场也过不了,因为前面的题已经zz调了好久-- F:就是给你环上一些点,两两配对求距离最小值. ...
- python爬虫学习(5) —— 扒一下codeforces题面
上一次我们拿学校的URP做了个小小的demo.... 其实我们还可以把每个学生的证件照爬下来做成一个证件照校花校草评比 另外也可以写一个物理实验自动选课... 但是出于多种原因,,还是绕开这些敏感话题 ...
- 【Codeforces 738D】Sea Battle(贪心)
http://codeforces.com/contest/738/problem/D Galya is playing one-dimensional Sea Battle on a 1 × n g ...
- 【Codeforces 738C】Road to Cinema
http://codeforces.com/contest/738/problem/C Vasya is currently at a car rental service, and he wants ...
- 【Codeforces 738A】Interview with Oleg
http://codeforces.com/contest/738/problem/A Polycarp has interviewed Oleg and has written the interv ...
- CodeForces - 662A Gambling Nim
http://codeforces.com/problemset/problem/662/A 题目大意: 给定n(n <= 500000)张卡片,每张卡片的两个面都写有数字,每个面都有0.5的概 ...
- CodeForces - 274B Zero Tree
http://codeforces.com/problemset/problem/274/B 题目大意: 给定你一颗树,每个点上有权值. 现在你每次取出这颗树的一颗子树(即点集和边集均是原图的子集的连 ...
- CodeForces - 261B Maxim and Restaurant
http://codeforces.com/problemset/problem/261/B 题目大意:给定n个数a1-an(n<=50,ai<=50),随机打乱后,记Si=a1+a2+a ...
随机推荐
- web前端学习(二)html学习笔记部分(9)-- 响应式布局
1.2.23 响应式布局基础 1.2.23.1 响应式布局介绍 1.响应式布局是2010年5月份提出的一个概念,简而言之,就是一个网站能够兼容多终端 -- 而不是为每个终端做一个特定的版本.这个概 ...
- SQL优化神器 - Tosska SQL Tuning Expert Pro for Oracle
SQL Tuning Expert Pro for Oracle 是Tosska 公司推出的划时代SQL优化工具.它可以帮助SQL开发人员和DBA: 找到最快的等价SQL: 调整执行计划: 管理SQL ...
- 【python小随笔】List列表的常见函数与切片
eval()的使用 n = ["2.3","2.56"] m = [] for i in n: k = eval(i) #只是去了最外层的双引号,单引号, 规定 ...
- 1.2开发文档简读,了解全貌.mp4
- bzoj1412 狼和羊的故事
Description “狼爱上羊啊爱的疯狂,谁让他们真爱了一场:狼爱上羊啊并不荒唐,他们说有爱就有方向......” Orez听到这首歌,心想:狼和羊如此和谐,为什么不尝试羊狼合养呢?说干就干! O ...
- zabbix程序架构
zabbix程序架构 特性 数据采样:snmp;ssh/telnet;agent,ipmi,jmx 自定义检测机制 自定义指定时间间隔 实时绘图:展示 graph map screen slide s ...
- python 不定长参数*args
- 阿里云数据库自研产品亮相国际顶级会议ICDE 推动云原生数据库成为行业标准
4月9日,澳门当地时间下午4:00-5:30,阿里云在ICDE 2019举办了主题为“云时代的数据库”的专场分享研讨会. 本次专场研讨会由阿里巴巴集团副总裁.高级研究员,阿里云智能数据库产品事业部负责 ...
- 在centos搭建git服务器时,不小心把/home/git目录删除了,我是怎么恢复的
在centos搭建git服务器时,不小心把/home/git目录删除了,我是怎么恢复的 在删除掉/home/git目录后,每次 git push提交时,都让填写密码,烦 第一步:在本地找到id_rsa ...
- c++ 对象池的创建
template <class T> class ObjectPool { public: using DeleterType = std::function<void(T*)> ...