Page 1 of 1

11550 - Demanding Dilemma

Posted: Mon Nov 03, 2008 4:05 am
by rij
pls give me some test cases.i m getting wa.
heres my code

Code: Select all



Re: 11550 - Demanding Dilemma

Posted: Mon Nov 03, 2008 2:27 pm
by zhouerjin
I WA too...-_-!
but I can't understand your code on:if(arr[j]=='1'&& i!=j)count++;
why do you check if i!=j? I think it doesn't need...

Re: 11550 - Demanding Dilemma

Posted: Mon Nov 03, 2008 2:54 pm
by mmonish
try this case
Input:

Code: Select all

1
3 2
1 1
1 0
0 1
My AC output:

Code: Select all

Yes
hope this helps..

Re: 11550 - Demanding Dilemma

Posted: Mon Nov 03, 2008 7:39 pm
by rij
corrected but still wa

Code: Select all

void call(int n,int m){
		int count=0,fc=0;
		for(int j=0;j<m;j++){
			count=0;
			for(int i=0;i<n;i++){
				if(arr[i][j]=='1')count++;
			}
			if(count==2)
				fc++;
		}
		if(fc==m)
			cout<<"Yes"<<endl;
		else cout<<"No"<<endl;
		return;
}

Re: 11550 - Demanding Dilemma

Posted: Mon Nov 03, 2008 7:45 pm
by Vytenis
You must also check if there are no two identical edges defined by the incidence matrix. If there are, you should return "No".

Re: 11550 - Demanding Dilemma

Posted: Tue Nov 04, 2008 11:49 am
by rij
thanks got ac after a number of tries.

Re: 11550 - Demanding Dilemma

Posted: Wed Nov 05, 2008 6:34 am
by zhouerjin
rij wrote:thanks got ac after a number of tries.
can you say more detail?
I still WA...

Re: 11550 - Demanding Dilemma

Posted: Wed Nov 05, 2008 8:12 am
by SerailHydra
The graph should be a simple indirected one.

Pay attention to the word 'simple'.

Re: 11550 - Demanding Dilemma

Posted: Thu Nov 06, 2008 6:23 am
by zhouerjin
I still WA....I need help...

Code: Select all

void prepare()
{
	scanf("%d%d",&n,&m);
	for (int i=1;i<=n;i++)
	for (int j=1;j<=n;j++)
		flag[i][j]=false;
	for (int i=1;i<=n;i++)
	for (int j=1;j<=m;j++)
		scanf("%d",&map[i][j]);
}

bool work()
{
	for (int i=1;i<=m;i++)
	{
		int u=-1,v=-1;
		for (int j=1;j<=n;j++)
		if (map[j][i])
		{
			if (u==-1) u=j;else 
			if (v!=-1) return false;else v=j;
		}
		if (u*v<0) return false;
		if (flag[u][v]) return false;
		flag[u][v]=flag[v][u]=true;
	}
	return true;
}

Re: 11550 - Demanding Dilemma

Posted: Thu Jan 14, 2010 6:21 pm
by shakil
To : zhouerjin
Change only one line & i hope that will make you AC.

Code: Select all

if (u*v<0) return false;
change to ->

Code: Select all

if (u==-1||v==-1) return false;
Because if u & v two are -1 then u*v>0

Re: 11550 - Demanding Dilemma

Posted: Fri Aug 17, 2012 4:31 am
by @li_kuet
This is a very simple problem.
Just check if every column(edge) has exactly two vertex and no two columns(edges) has same vertexes(Because multiple edges are not allowed) :)
You can try this Cases :-?
Input :

Code: Select all

3

3 3
1 1 0
1 1 1
1 0 0

2 2
1 1
1 1

3 3
1 0 0
1 1 1
0 1 1
Output :

Code: Select all

No
No
No
In 1st case first column(edge) has three vertex which is not possible
In 2nd case 1st and 2nd edges have the same vertexes (1,2) and (1,2) so again No
In 3rd case same thing occurs like 2nd case.Here 2nd and 3rd edges have the same vertexes (2,3) and (2,3)

Re: 11550 - Demanding Dilemma

Posted: Tue Dec 11, 2012 9:26 am
by brianfry713
input

Code: Select all

1
4 3
1 1 1
1 0 0
0 1 0
0 0 0
output No

Re: 11550 - Demanding Dilemma

Posted: Thu Apr 16, 2015 1:01 pm
by uDebug
Added some input to help with testing / debugging here:

http://www.udebug.com/UVa/11550