F - Berland and the Shortest Paths

思路:还是很好想的,处理出来最短路径图,然后搜k个就好啦。

#include<bits/stdc++.h>
#define LL long long
#define fi first
#define se second
#define mk make_pair
#define pii pair<int, int> using namespace std; const int N = 5e5 + ;
const int inf = 0x3f3f3f3f;
const LL INF = 0x3f3f3f3f3f3f3f3f;
const int mod = ; int n, m, k, tot, d[N], head[N], ans[N];
LL cnt;
struct node {
int u, v, nx;
} edge[N]; void add(int u, int v) {
edge[tot].u = u;
edge[tot].v = v;
edge[tot].nx = head[u];
head[u] = tot++;
} vector<int> vec[N]; void bfs() {
queue<int> que;
d[] = ;
que.push(); while(!que.empty()) {
int u = que.front(); que.pop();
for(int i = head[u]; ~i; i = edge[i].nx) {
int v = edge[i].v;
if(d[v] != -) continue;
d[v] = d[u] + ;
que.push(v);
}
}
} void dfs(int pos) {
if(cnt <= ) return;
if(pos == n + ) {
cnt--;
for(int i = ; i <= m; i++)
printf("%d", ans[i]);
puts("");
return;
}
for(int i = ; i < vec[pos].size(); i++) {
ans[vec[pos][i]] = ;
dfs(pos + );
ans[vec[pos][i]] = ;
}
}
int main(){
memset(head, -, sizeof(head));
scanf("%d%d%d", &n, &m, &k);
for(int i = ; i <= m; i++) {
int u, v; scanf("%d%d", &u, &v);
add(u, v);
add(v, u);
} memset(d, -, sizeof(d)); bfs();
for(int i = ; i < tot; i++) {
int u = edge[i].u, v = edge[i].v;
if(d[u] + == d[v]) {
vec[v].push_back(i / + );
}
} cnt = ;
for(int i = ; i <= n; i++) {
cnt *= (int) vec[i].size();
if(cnt >= k) break;
} cnt = min(cnt, 1ll * k);
printf("%lld\n", cnt);
dfs();
return ;
} /*
*/

最新文章

  1. DirectAccess
  2. CDN 技术详解(DNS,GSLB,Cache)
  3. Linux分区练习(1)
  4. 4、时间同步ntp服务的安装于配置(作为客户端的配置)
  5. db2 存储过程 语法 及结果集查询
  6. PHP 提取图片img标记中的任意属性
  7. 重温css系列01
  8. 【转】centOS上安装redis+phpredis2.2.4扩展
  9. wamp在win7下64位系统memcache/memcached安装教程
  10. 异步陷阱之IO
  11. 【渗透课程】特别篇-主流网站程序Oday大全以及拿shell思路
  12. 2013 ACM/ICPC Asia Regional Hangzhou Online hdu4739 Zhuge Liang&#39;s Mines
  13. Centos 6.5升级openssh漏洞
  14. SpringBoot中对于异常处理的提供的五种处理方式
  15. 基于IPV6的数据包分析(更新拓扑加入了linux主机和抓取133icmp包)(第十三组)
  16. AngelToken钱包——值得投资与存币的钱包
  17. JSP 前端的一些应用
  18. tcp/ip 3次握手和4次挥手
  19. jformdesigner 开发
  20. 彻底解决 intellij IDEA 卡顿 优化笔记

热门文章

  1. linux命令行设置git提示符
  2. golang设置代理
  3. C语言 ------ #undef 的使用
  4. 查看git拉取地址
  5. [大数据可视化]-saiku的源码包Bulid常见问题和jar包
  6. 《转》sklearn参数优化方法
  7. python---爬虫相关性能(各个异步模块的使用,和自定义异步IO模块)
  8. zTree使用技巧与详解
  9. 无密码ssh登录linux
  10. delphi 7 连接 MySql