題意:給你長度為n的區間,m個詢問:a,b,c,問這m個問題有多少個是錯誤的(矛盾)。
10 5 1 10 100 7 10 28 1 3 32 4 6 41 6 6 1
由6->6=1, 4->6=41 知4->5=40;
同理 由1->10=100,7->10=28 知1->7=72;
又由1->3=32,4-6=41 知1->7=73,與上面矛盾;
所以答案為1;
#include #include #include #include #include #include #include #include #include #include #include using namespace std; #define INF 1e8 #define eps 1e-8 #define LL long long #define maxn 100001 #define PI acos(-1.0) int father[2*maxn]; int sum[2*maxn]; int find(int x) { if(x==father[x]) return x; int t=father[x]; father[x]=find(father[x]); sum[x]+=sum[t]; return father[x]; } int main() { int n,m; while(~scanf("%d%d",&n,&m)) { int a,b,c; for(int i=0;i<=n;i++) { father[i]=i; sum[i]=0; } int ans=0; while(m--) { scanf("%d%d%d",&a,&b,&c); int x,y; a--; x=find(a); y=find(b); if(x==y) { if(sum[a]-sum[b]!=c) ans++; } else if(x>y) { father[y]=x; sum[y]=sum[a]-sum[b]-c; } else { father[x]=y; sum[x]=sum[b]-sum[a]+c; } } printf("%d\n",ans); } return 0; } /* 10 5 1 10 100 7 10 28 1 3 32 4 6 41 6 6 1 */
[cpp] view plaincopyprint?關
【C++】朝花夕拾——表達式樹,朝花夕拾表達式樹表達式樹:
Problem Description Bob enj
zoj 2112 Dynamic Rankings,zojr
序列化Serializable和Externalizable
概述 假如你有一張地圖,地圖上給出了每一對相鄰城市的距