권력 을 가지 고 함께 조사 하여 모으다.
http://acm.hdu.edu.cn/showproblem.php?pid=3038
제목:
분석:
AC 코드:
#include
#define ll long long
#define pii pair
using namespace std;
const int maxn=2e5+7;
const int mod=1e9+7;
ll offe[maxn],boss[maxn];
int fin(int x){
if(x==boss[x])return x;
int z=boss[x];
int y=fin(boss[x]);
offe[x]+=offe[z];
boss[x]=y;
return y;
}
int main()
{
int n,m,ans=0;
while(scanf("%d %d",&n,&m)==2){
ans=0;
for(int i=0;i<=n;i++)boss[i]=i,offe[i]=0;
for(int i=1;i<=m;i++){
int l,r,x;
scanf("%d %d %d",&l,&r,&x);
l--;
if(fin(l)==fin(r)){
if(offe[l]-offe[r]!=x)ans++;
}else{
int fl=fin(l),fr=fin(r);
boss[fl]=fr;
offe[fl]=x-offe[l]+offe[r];
}
}
printf("%d
",ans);
}
return 0;
}
예제 2 링크:
https://codeforces.com/problemset/problem/1290/C
제목:
분석:
참고:https://www.cnblogs.com/uid001/p/12272628.html
AC 코드:
#include
#define ll long long
using namespace std;
const int maxn=3e5+7;
vectorve[maxn];
int boss[maxn*2],sz[maxn*2],n,k;
char S[maxn];
int fin(int x){
if(x==boss[x])return x;
return boss[x]=fin(boss[x]);
}
void unio(int x,int y){
x=fin(x),y=fin(y);
if(x!=y){
boss[x]=y;
sz[y]+=sz[x];
}
}
int cal(int x){
return min(sz[fin(x)],sz[fin(x+k)]);
}
int main(){
scanf("%d %d",&n,&k);
scanf("%s",S+1);
for(int i=1;i<=2*k+1;i++)boss[i]=i;
for(int i=k+1;i<=2*k;i++)sz[i]=1;
sz[2*k+1]=1e9;
for(int i=1;i<=k;i++){
int num,x;
scanf("%d",&num);
while(num--){
scanf("%d",&x);
ve[x].push_back(i);
}
}
int ans=0;
for(int i=1;i<=n;i++){
if(ve[i].size()==1){
ans-=cal(ve[i][0]);
if(S[i]=='1')unio(ve[i][0]+k,2*k+1);
else unio(ve[i][0],2*k+1);
ans+=cal(ve[i][0]);
}else if(ve[i].size()==2){
int a=ve[i][0],b=ve[i][1];
if(fin(a)!=fin(b)&&fin(a)!=fin(b+k)){
ans-=(cal(a)+cal(b));
if(S[i]=='1')unio(a,b),unio(a+k,b+k);
else unio(a,b+k),unio(a+k,b);
ans+=cal(a);
}
}
printf("%d
",ans);
}
return 0;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.