B - Super Mancunian
题目链接
一个最小生成树板子题,最后需要求有多少可行路,即加入n-2条边后孤立的点的度即可;
#include <iostream>
#include <cstring>
#include <cstdio>
#include <queue>
#include <stack>
#include <cmath>
#include <map>
#include <algorithm>
#include <vector>
#include <cstring>
using namespace std;
#define ll long long
#define mem(f,x) memset(f,x,sizeof(f));
#define sca(x) scanf("%d",&x);
#define scl(x) scanf("%lld",&x);
#define sca2(x,y) scanf("%d %d",&x,&y);
#define sca3(x,y,z) scanf("%d %d %d",&x,&y,&z);
#define pu puts("");
#define pri(x) printf("%d\n",x);
#define mp make_pair
#define pb push_back
#define rep(i,a,b) for(auto i=a;i<=b;++i)
#define bep(i,a,b) for(auto i=a;i>=b;--i)
#define lowbit(x) x&(-x)
#define ull unsigned long long
#define PI acos(-1)
const int maxn=5e5+10;
struct rec{
ll x,y,z;
}edge[maxn];
ll fa[maxn],n,m;
ll ans;
bool operator <(rec a ,rec b){
return a.z<b.z;
}
ll get(ll x){
if(x==fa[x]) return x;
return fa[x] = get(fa[x]);
}
int main(){
cin>>n>>m;
for(ll i=1;i<=m;i++){
cin>>edge[i].x>>edge[i].y>>edge[i].z;
}
sort(edge+1,edge+m+1);
for(ll i=1;i<=n;i++)fa[i]=i;
int cv=2;
int en=-1;
ll maxx=0;
int tot=0;
for(ll i=1;i<=m;i++){
int x=get(edge[i].x);
int y=get(edge[i].y);
if(x==y)continue;
ans+=edge[i].z,fa[x]=y,cv++;
maxx=edge[i].z;
}
for(ll i=1;i<=n;i++)fa[i]=i;
for(ll i=1;i<=m;i++){
int x=get(edge[i].x);
int y=get(edge[i].y);
if(x==y)continue;
if(edge[i].z>=maxx) tot++;
else {
fa[x]=y;
}
}
cout<<ans-maxx<<" "<<tot<<endl;
return 0;
}
C - Parity Game
题目链接
签到题:理解题意即可,
#include <iostream>
#include <cstring>
#include <cstdio>
#include <queue>
#include <stack>
#include <cmath>
#include <map>
#include <algorithm>
#include <vector>
#include <cstring>
using namespace std;
#define ll long long
#define mem(f,x) memset(f,x,sizeof(f));
#define sca(x) scanf("%d",&x);
#define scl(x) scanf("%lld",&x);
#define sca2(x,y) scanf("%d %d",&x,&y);
#define sca3(x,y,z) scanf("%d %d %d",&x,&y,&z);
#define pu puts("");
#define pri(x) printf("%d\n",x);
#define mp make_pair
#define pb push_back
#define rep(i,a,b) for(auto i=a;i<=b;++i)
#define bep(i,a,b) for(auto i=a;i>=b;--i)
#define lowbit(x) x&(-x)
#define ull unsigned long long
#define PI acos(-1)
const int MX = 2e5 + 7;
int main(){
int x,y;
int ans=0;
sca(x);
rep(i,0,x-1){
sca(y);
ans+=y;
}
if(ans%2==1){
if(x==1)puts("-1");
else puts("1");
}
else puts("0");
return 0;
}
F - Combo Meal
题目链接
小学数学题
#include <iostream>
#include <cstring>
#include <cstdio>
#include <queue>
#include <stack>
#include <cmath>
#include <map>
#include <algorithm>
#include <vector>
#include <cstring>
using namespace std;
#define ll long long
#define mem(f,x) memset(f,x,sizeof(f));
#define sca(x) scanf("%d",&x);
#define scl(x) scanf("%lld",&x);
#define sca2(x,y) scanf("%d %d",&x,&y);
#define sca3(x,y,z) scanf("%d %d %d",&x,&y,&z);
#define pu puts("");
#define pri(x) printf("%d\n",x);
#define mp make_pair
#define pb push_back
#define rep(i,a,b) for(auto i=a;i<=b;++i)
#define bep(i,a,b) for(auto i=a;i>=b;--i)
#define lowbit(x) x&(-x)
#define ull unsigned long long
#define PI acos(-1)
const int MX = 2e5 + 7;
int main(){
int x,y;
int ans=0;
sca(x);
rep(i,0,x-1){
int a,b,c;
sca(a)sca(b)sca(c)
pri(a+b-c);
}
return 0;
}
H - Constructing a Number
题目链接
小学数学题:
#include <iostream>
#include <cstring>
#include <cstdio>
#include <queue>
#include <stack>
#include <cmath>
#include <map>
#include <algorithm>
#include <vector>
#include <cstring>
using namespace std;
#define ll long long
#define mem(f,x) memset(f,x,sizeof(f));
#define sca(x) scanf("%d",&x);
#define scl(x) scanf("%lld",&x);
#define sca2(x,y) scanf("%d %d",&x,&y);
#define sca3(x,y,z) scanf("%d %d %d",&x,&y,&z);
#define pu puts("");
#define pri(x) printf("%d\n",x);
#define mp make_pair
#define pb push_back
#define rep(i,a,b) for(auto i=a;i<=b;++i)
#define bep(i,a,b) for(auto i=a;i>=b;--i)
#define lowbit(x) x&(-x)
#define ull unsigned long long
#define PI acos(-1)
const int MX = 2e5 + 7;
int cl(int x){
int ans=0;
while(x){
ans+=x%10;
x/=10;
}
return ans;
}
int main(){
int x,y,s,t;
sca(x);
while(x--){
sca(y);
int ans=0;
rep(i,1,y){
sca(s);
ans+=cl(s);
}
if(ans%3==0) puts("Yes");
else puts("No");
}
return 0;
}
J - Halloween Sale
题目链接
签到题
#include <iostream>
#include <cstring>
#include <cstdio>
#include <queue>
#include <stack>
#include <cmath>
#include <map>
#include <algorithm>
#include <vector>
#include <cstring>
using namespace std;
#define ll long long
#define mem(f,x) memset(f,x,sizeof(f));
#define sca(x) scanf("%d",&x);
#define scl(x) scanf("%lld",&x);
#define sca2(x,y) scanf("%d %d",&x,&y);
#define sca3(x,y,z) scanf("%d %d %d",&x,&y,&z);
#define pu puts("");
#define pri(x) printf("%d\n",x);
#define mp make_pair
#define pb push_back
#define rep(i,a,b) for(auto i=a;i<=b;++i)
#define bep(i,a,b) for(auto i=a;i>=b;--i)
#define lowbit(x) x&(-x)
#define ull unsigned long long
#define PI acos(-1)
const int MX = 2e5 + 7;
int cl(int x){
int ans=0;
while(x){
ans+=x%10;
x/=10;
}
return ans;
}
int main(){
int x,y,s,t;
sca(x);
while(x--){
sca(y);
int ans=0;
rep(i,1,y){
sca(s);
ans+=cl(s);
}
if(ans%3==0) puts("Yes");
else puts("No");
}
return 0;
}