2017.5.9 寻找道路 思考记录
一定认真读题,不然被坑死
注意是根据这个点的下一个点判断这个点、、
而且写代码一定注意每个语句的细节
码:
#include<iostream>
#include<cstdio>
using namespace std;
#include<queue>
#include<vector>
#include<cstring>
int st,nd,f[10050],s,t,n,m,i,x,y,j;
bool zout[10050],keyi,dian[10050],vis[10050];
queue<int> q;
vector<int>v[10050],v2[10050];
void dfs(int now)
{int i;for(i=0;i<v2[now].size();i++){if(zout[v2[now][i]])continue;zout[v2[now][i]]=1;dfs(v2[now][i]); }
}
int spfa(int now)
{int st,i,nd;memset(f,0x7f,sizeof(f));f[s]=0;q.push(s);while(!q.empty()){st=q.front();vis[st]=0;q.pop(); for(i=0;i<v[st].size();i++){nd=v[st][i];if(dian[nd])continue;if(f[nd]>f[st]+1){f[nd]=f[st]+1; if(!vis[nd])vis[nd]=1,q.push(nd); }} }if(f[t]>1e7)return -1;else return f[t];
}
int main()
{scanf("%d%d",&n,&m);for(i=1;i<=m;i++){scanf("%d%d",&x,&y);v[x].push_back(y);v2[y].push_back(x);}scanf("%d%d",&s,&t);zout[t]=1;dfs(t);for(i=1;i<=n;i++)
{keyi=1;for(j=0;j<v[i].size();j++){if(!zout[v[i][j]]){ keyi=0;break;} }if(keyi==0)dian[i]=1;
// else cout<<i<<" ";
}dian[s]=1;cout<<spfa(s);
}
2017.5.9 寻找道路 思考记录相关推荐
- 2017.3.24 分裂游戏 思考记录
事先说明:这不是好题解,这只是思考记录 同机房的xp都学博弈了.. 感觉还是学学看吧 先来看一下简单的nim: 题目: Alice和Bob放置了N堆不同的石子,编号1..N,第i堆中有A[i]个 ...
- 2017.10.24 上升序列 思考记录
终于有会做的题了... 一开始想用正常的lis ,然后从前往后扫, 由于最优查询区间在序列上是按顺序单调递增的,所以想记录每个点取哪个值跳到哪,这样是n*m logn的 然后发现既然是单调递增的那直接 ...
- 2017.10.7 括号序列 思考记录
这个题看起来很简单,但细节比较麻烦.参考完别人的代码后才想出自己的解法的.. 一开始认为已匹配的括号是可以直接消的,所以就只维护了两个变量 但还有区间取反.. 由于和已配对的括号的顺序有关,所以不是很 ...
- 2017.9.28 约数研究 思考记录
这个题一开始可能会想复杂, 然而它需要对答案的贡献进行归类 可以发现,一个约数对其倍数的数贡献是一样的,,所以可以考虑离散 所以直接对于每个数不好求,就可以考虑每个约数的贡献 而每个约数i就有n/i个 ...
- 2017.5.9 积木大赛 思考记录
为什么要把这个题放上来?因为这个题还是很有代表性的 首先必须要跳出模拟的思考: 可以忽视每一步具体的操作,直接看目标,这样就会总结出一些规律: 连续上升或连续下降的序列次数一定是最大值,因为每次都可以 ...
- 2017.4.25 解方程 思考记录
这个题好乱啊..n*m就会炸,每个数还都可能是10^10000..这n*ai tm读进去都要10^6效率 . 一般这种似乎没有任何数论定理的东西范围还这么变态只能考虑随机化算法了.. 似乎可以用取模 ...
- 2017.3.29 报表统计 思考记录
有生之年第一道浙江省选题(虽然历史久远并且很水) 记录每个位置数列的左端点和右端点 维护两颗splay 一颗维护全局最小差值,一颗维护相邻最小差值 对于全局splay:每次插入时记录路径取差值mi ...
- 2017.3.6 地精部落 思考记录
其实这个题第一眼是没有任何思路的 强行无视题解,经过漫长的找规律,终于推出了一个可行的方法: f[i][0/1]i表示最高位的数字,0表示开始是上升,1表示开始是下降. 为什么会推出这个? 1.因为所 ...
- 2017.10.30 覆盖问题 思考记录
从细节入手已经从一种技巧变成一种策略了. 题目给出的条件很奇怪,是3个正方形,, 为什么是3个而不是4个或2个呢.. 于是先用一个大矩形把所有点卡住 然后显然矩形的每个边 都有一个正方形和他在一条直线 ...
最新文章
- 后处理编辑修改_NX后处理打开报错处理方法
- ARM中 __IO的作用解析
- HarmonyOS之深入解析媒体会话的管理
- can1--can初探
- ubuntu的xfce4的display只有一种分辨率选项
- 有关HL7 的C# 源码
- 随机样本一致性:一种用于图像分析和自动制图的模型拟合模型(5)--(P4P的解析解)
- 优秀!一种巧妙组合算法YOLOX!旷视重磅开源!
- android触摸滑动监听,Android 滑动监听的实例详解
- AD OU管理|委派密码重置权限
- Alibaba Fastjson 入门详细教程
- Sourcetree 看不了文件内容 Diff was suppressed because of file size or pattern
- wps2019政府专版 无广告
- 第21课: JSP语句 if判断语句 (JSP教程 JSP入门实战教程 黄菊华Java网站开发系列教程)
- android电视工程模式,智能电视进入工厂/工程模式教程汇总!
- 几行代码快速去掉迅雷临时文件的后缀
- 菌群代谢物和宿主:如何影响肝脏疾病?
- SQL Server 备份还原教程
- 一个查英语缩写的网站
- 手机端和pc端浏览器兼容性问题
热门文章
- Kotlin学习笔记 第二章 类与对象 第十四 十五节 委托 委托属性
- 红橙Darren视频笔记 Handler源码简析与handler框架模拟 ThreadLocal
- 红橙Darren视频笔记 Activity启动流程(API28)
- 设计模式笔记十:装饰器模式
- python编程软件免费吗_MRT7-Python编程软件
- JSP页面元素-新手向
- integer java 随机_如何在Java中生成随机BigInteger值?
- php代码提示助手,laravel自动补全助手ide-helper安置及配置
- 17_python基础—面向对象-继承
- ras的c语言源代码文档,µMore(µITRON操作系统)--功能概况