过于神奇WA50
查看原帖
过于神奇WA50
167279
Danno0v0楼主2022/10/13 11:25

这是代码

啊对,没有过

其中这是读入志愿的

for(int i=1;i<=n;i++)
		{
			for(int j=1;j<=m;j++)
			{
				cin>>x;
				if(x)
					choose[i][++ccnt[i]]={x,j+n};
			}	
			sort(choose[i]+1,choose[i]+ccnt[i]+1,cmp);
		}

导师的点编号是导师点编号+n

所以后面连边就是

link(i,choose[i][p].second,1,i);
					link(choose[i][p].second,i,0,i);

WA on568910

好这下子改成这样

for(int i=1;i<=n;i++)
		{
			for(int j=1;j<=m;j++)
			{
				cin>>x;
				if(x)
					choose[i][++ccnt[i]]={x,j};
			}	
			sort(choose[i]+1,choose[i]+ccnt[i]+1,cmp);
		}

后面link边改成这样

while(choose[i][p].first==color)
				{
					link(i,choose[i][p].second+n,1,i);
					link(choose[i][p].second+n,i,0,i);
					p++;
				} 

一个是读入时+n,一个是连边时+n等价的是吧

好这下子WA on 245910

更神奇的是本来排序与导师无关只与导师志愿有关是吧

后面这种写法如果将cmp:

bool cmp(pair<int,int>a,pair<int,int>b)
{
	if(a.first!=b.first) return a.first<b.first;
	return a.second<b.second;
}

改成

bool cmp(pair<int,int>a,pair<int,int>b)
{
	return a.first<b.first;
}

就会再WA一个6

神奇,太神奇了

所以求调实在不行求求数据也可以啊给组hack什么的吧对拍又全部拍过本来发誓昨天没过就要去当lin的狗的今天调nm一上午还没调过

2022/10/13 11:25
加载中...