关闭

UVALive 7414 Sibling Rivalry

247人阅读 评论(0) 收藏 举报
分类:

题意:n个点m条边的有向图,有一个起点和一个终点,每次兄贵选择从abc三个数中选择一个数作为你前进的步数,问兄贵最多选择多少次你一定可以到达终点,如果无论如何都到大不了终点则输出IMPOSSIBLE.


分析:假设最多需要k步我们一定可以到达终点,那么对于k-1步来说,他下一步走a,b,c步一定都可以到达终点,同理,k-2步的点下一步走a,b,c步一定可以到达k-1之前能到达的点,所以我们可以一遍bfs,如果结束了还没有找到起点,那么一定是无解。


#include<iostream>
#include<string>
#include<algorithm>
#include<cstdlib>
#include<cstdio>
#include<set>
#include<map>
#include<vector>
#include<cstring>
#include<stack>
#include<cmath>
#include<queue>
#include <unordered_map>
#define INF 0x3f3f3f3f
#define eps 1e-9  
#define MOD 1000000007 
using namespace std;
typedef long long ll;
int n,m,a,b,c,jud[51],color[51],val[51];
struct Matrix 
{
	ll val[51][51];
	int x,y;
	friend Matrix operator *(const Matrix a,const Matrix b)
	{
		Matrix c = {0};
		c.x = a.x,c.y = b.y;
		for(int i = 1;i <= a.x;i++)
		 for(int j = 1;j <= b.y;j++)
		  for(int k = 1;k <= b.x;k++)
		   c.val[i][j] = (c.val[i][j] + a.val[i][k]*b.val[k][j]) % MOD;
		return c; 
	}
}G,Ga,Gb,Gc;
Matrix ksm(Matrix a,ll b)
{
	Matrix c = a;
	b--;
	while(b)
	{
		if(b & 1) c = c*a;
		a = a*a;
		b>>=1; 
	}
	return c;
}
int main()
{
	while(~scanf("%d%d%d%d%d",&n,&m,&a,&b,&c))
	{
		G.x = G.y = n;
		memset(G.val,0,sizeof(G.val));
		memset(jud,0,sizeof(jud));
		memset(color,0,sizeof(color));
		for(int i = 1;i <= m;i++)
		{
			int x,y;
			scanf("%d%d",&x,&y);
			G.val[y][x] = 1;	
		}	
		Ga = ksm(G,a),Gb = ksm(G,b),Gc = ksm(G,c);
		deque <int> s;
		s.push_back(n);
		jud[n] = true;
		val[n] = 0;
		while(!s.empty() && !jud[1])
		{
			int u = s.front();
			s.pop_front();
			for(int v = 1;v <= n;v++)
			{
				if(jud[v]) continue;
				if(Ga.val[u][v]) color[v] |= 1;
				if(Gb.val[u][v]) color[v] |= 2;
				if(Gc.val[u][v]) color[v] |= 4;
				if(color[v] == 7)
				{
					jud[v] = true;
					val[v] = val[u] + 1;
					if(v == 1) break;
					s.push_back(v);
				} 
			}
		}
		if(!jud[1]) cout<<"IMPOSSIBLE"<<endl;
		else cout<<val[1]<<endl;
	}	
} 


0
0
查看评论

jQuery(一)sibling方法

sibling方法是获得同辈元素。这个单词中文解释就是兄弟姐妹的意思。可以传入选择器或者正则表达式作为参数next 用于搜索紧跟在每个匹配元素之后的单个同辈元素。原题链接: http://www.nowcoder.com/test/question/done?tid=1746976&qid...
  • u014345282
  • u014345282
  • 2015-10-12 15:38
  • 3403

is not a sibling in the same RelativeLayout 是怎么回事的呢?

用错了,把那句报错的直接改为android:layout_alignParentRight="true". 这里你理解错了,外部那个relativeLayout是个整体, 你表达的意思可能是要放在这个整体里面的右面,相当于椅子在教室里面的右面. 用android:layout_a...
  • yiban8084
  • yiban8084
  • 2017-08-30 17:51
  • 348

用二叉树表示k叉树(left-child-right-sibling)

IV. Given a tree represented by left-child-right-sibling structure, please describe an algorithm...
  • ZJU_fish1996
  • ZJU_fish1996
  • 2016-01-11 19:52
  • 1080

【暑假】[实用数据结构]UVAlive 4670 Dominating Patterns

UVAlive 4670 Dominating Patterns     题目:   Dominating Patterns   Time Limit: 3000MS   Memory Limit: Unknown ...
  • hahalidaxin
  • hahalidaxin
  • 2016-03-30 17:20
  • 364

UVAlive 7503

题意:你有a(0.01, 0.02, 0.05, 0.1, 0.2, 0.5, 1, 2, 5, 10, 20, 50)钱,有一个机器,在这个机器上,你可以花任意的钱,然后它会把零钱以不确定的方式吐出来(由0.01, 0.02, 0.05, 0.1, 0.2, 0.5, 1, 2, 5, 10, 2...
  • zjbh89757
  • zjbh89757
  • 2016-08-02 20:42
  • 791

CSS Combinator

Combinator 把基础选择器组合起来使用。 There are four different combinators in CSS3: descendant selector 后代选择器child selector 自选择器adjacent sibling selector 相邻兄弟选择...
  • u013960094
  • u013960094
  • 2015-03-02 16:20
  • 342

UVALive - 4043 Ants (KM裸题)

题目大意:给出N只蚂蚁和N棵树的坐标,问如何完美匹配,才能使蚂蚁到树的连线不会相交解题思路:KM裸题,但是很郁闷啊 不开根号,用long long竟然过不了,很无语啊,距离最大只有8亿啊 然后用A的double的代码,把他改成了long long ,WA了 然后再用double的A的代码,不开...
  • L123012013048
  • L123012013048
  • 2015-08-06 17:48
  • 774

uvalive 4671 - K-neighbor substrings 快速傅利叶变换

题目链接: https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=2672 题目概述: 定以两个长度相等的串的...
  • u012183589
  • u012183589
  • 2015-09-26 10:16
  • 835

Uva 6437 - Power Plant 裸最小生成树

题意:                           一个无向图中(至多100个点),..每条边有其费用...有些点是发电站..现在要求所有的点都可以达到至少一个...
  • kk303
  • kk303
  • 2013-12-01 22:49
  • 1190

firstChild,nextSibling,childNodes等属性的问题

在火狐,谷歌等浏览器中,获取第一个子节点、下一个兄弟节点等节点时,如果有空格,则返回的结果将会是#text; 所以应该将空格去掉;     aaa     bbb var li = ul.firstChild; con...
  • u014433030
  • u014433030
  • 2016-07-02 21:42
  • 177
    个人资料
    • 访问:110239次
    • 积分:4537
    • 等级:
    • 排名:第7747名
    • 原创:363篇
    • 转载:2篇
    • 译文:0篇
    • 评论:42条
    最新评论