bzoj 5056: OI游戏
来源:互联网 发布:奇葩说 知乎 那期好看 编辑:程序博客网 时间:2024/06/07 15:56
题意:
求最小路径树计数。
题解
感觉我以前就做过类似的题。。
然而这次我并没有做出来QAQ
我好菜啊
然后呢,你就先跑SPFA
然后看一下哪一条边是答案边就好了
#include<cstdio>#include<algorithm>#include<iostream>#include<queue>#include<cstring>using namespace std;typedef long long LL;const LL MOD=1e9+7;const LL N=55;LL n;char ss[N];struct qq{ LL x,y,z,last;}s[N*N];LL num,last[N];void init (LL x,LL y,LL z){ num++; s[num].x=x;s[num].y=y;s[num].z=z; s[num].last=last[x]; last[x]=num;}LL f[N];bool vis[N];void SPFA (){ memset(vis,false,sizeof(vis)); memset(f,127,sizeof(f)); queue<int> q; q.push(1);f[1]=0; vis[1]=true; while (!q.empty()) { LL x=q.front();q.pop(); for (LL u=last[x];u!=-1;u=s[u].last) { LL y=s[u].y; if (f[y]>f[x]+s[u].z) { f[y]=f[x]+s[u].z; if (vis[y]==false) { vis[y]=true; q.push(y); } } } vis[x]=false; }}void solve (){ LL ans=1; for (LL u=2;u<=n;u++) { LL tot=0; for (LL i=last[u];i!=-1;i=s[i].last) { LL y=s[i].y; if (f[u]==f[y]+s[i].z) tot++; } ans=(ans*tot)%MOD; } printf("%lld\n",ans);}int main(){ num=0;memset(last,-1,sizeof(last)); scanf("%lld",&n); for (LL u=1;u<=n;u++) { scanf("%s",ss+1); for (LL i=1;i<=n;i++) if (ss[i]!='0') init(u,i,ss[i]-'0'); } SPFA(); solve(); return 0;}
阅读全文
1 0
- bzoj 5056: OI游戏
- bzoj 5056: OI游戏
- bzoj 5056: OI游戏
- BZOJ 5056 OI游戏 (最短路径树)
- 【OI做题记录】【BZOJ】【Scoi2010】游戏
- BZOJ 5056 OI游戏 dijkstra(最短路径的数目)
- 【OI做题记录】【BZOJ】【Ahoi2014】骑士游戏
- bzoj 5000: OI树
- 【bzoj5056】OI游戏
- bzoj5056: OI游戏
- [BZOJ]5000: OI树 倍增
- wiki oi 1051 接龙游戏
- 维基oi 3285 转圈游戏
- 【OI做题记录】【BZOJ】【SCOI2009】生日快乐
- OI
- Oi
- 游戏 BZOJ
- 【OI做题记录】【BZOJ】【BeiJing wc2012】冻结
- Android 高德地图定位(获取当前位置)
- div+css=>遮罩+弹出框(固定在页面中间)
- js 位运算
- css使table支持overflow:hidden;
- 简易四则运算器
- bzoj 5056: OI游戏
- 电影网站增删改查 spring boots/MVC/neo4j 源码分析-2 DATA 实体建模(noe4j)
- jquery form validator 验证 自定义 方法
- PDF转CAD转换器好处及步骤有哪些?
- There is no getter for property named 'xx' in 'class java.lang.String
- 这7款Python工具 数据专家都应该了解
- Unreal4 入门(安装)
- 可拖拽可点击,可吸附button(2)
- NOIP1999提高组 旅行家的预算