#include<bits/stdc++.h>
using namespace std;
#pragma GCC optimize(2)
typedef long long ll;
typedef unsigned long long ull;
typedef long double ld;
int t,n,k;
int main()
{
ios::sync_with_stdio(false);
cin.tie(0);cout.tie(0);
cin>>t;
while(t--){
cin>>n>>k;
if(n<k){
cout<<k-n<<"\n";
}else{
cout<<(n+k)%2<<"\n";
}
}
return 0;
}
#include<bits/stdc++.h>
using namespace std;
#pragma GCC optimize(2)
typedef long long ll;
typedef unsigned long long ull;
typedef long double ld;
int t,a1,b1,c1,a2,b2,c2;
int main()
{
ios::sync_with_stdio(false);
cin.tie(0);cout.tie(0);
cin>>t;
while(t--){
int tmp;
cin>>a1>>b1>>c1;
cin>>a2>>b2>>c2;
int ans=0;
ans+=(min(c1,b2)*2);
tmp=min(c1,b2);
c1-=tmp;
b2-=tmp;
tmp=min(c2,a1);
c2-=tmp;
a1-=tmp;
if(!c2) cout<<ans<<"\n";
else{
if(c1){
tmp=min(c1,c2);
c1-=tmp;
c2-=tmp;
//cout<<c1<<" "<<c2<<"\n";
}
ans-=c2*2;
cout<<ans<<"\n";
}
}
return 0;
}
#include<bits/stdc++.h>
using namespace std;
#pragma GCC optimize(2)
typedef long long ll;
typedef unsigned long long ull;
typedef long double ld;
const int N=1e5+10;
int t,n;
int a[N],b[N];
int main()
{
ios::sync_with_stdio(false);
cin.tie(0);cout.tie(0);
cin>>t;
while(t--){
cin>>n;
int mim=0x3f3f3f3f;
for(int i=1;i<=n;++i){
cin>>a[i];
b[i]=a[i];
mim=min(a[i],mim);
}
sort(b+1,b+1+n);
int f=1;
for(int i=1;i<=n;++i){
f=f&((b[i]==a[i])||(a[i]%mim==0));
}
if(f)
cout<<"YES\n";
else
cout<<"NO\n";
}
return 0;
}
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
#pragma GCC optimize(2)
const ll mod=1e9+7;
int t,n,m;
int tot;
const int N=1e5+10;
int head[N];
ll rec[N],p[N],con[N];
//vector<ll>cnt;
struct Edge{
int to,next;
}e[N*2];
void add(int u,int v)
{
e[++tot].to=v;
e[tot].next=head[u];
head[u]=tot;
}
void dfs(int u,int fa)
{
rec[u]=1ll;
for(int i=head[u];i;i=e[i].next){
int v=e[i].to;
if(v==fa) continue;
dfs(v,u);
rec[u]+=rec[v];
//cnt.push_back(rec[v]);
}
con[u-1]=rec[u]*(n*1ll-rec[u]);//路径贡献
}
void init()
{
tot=0;
memset(head,0,sizeof(int)*(n+1));
}
int main()
{
ios::sync_with_stdio(false);
cin.tie(0);
cin>>t;
while(t--){
cin>>n;
init();
for(int i=0;i<n-1;++i){
int u,v;
cin>>u>>v;
add(u,v);
add(v,u);
}
cin>>m;
for(int i=1;i<=m;++i) cin>>p[i];
dfs(1,0);
//sort(p+1,p+1+m);
//sort(cnt.begin(),cnt.end());
sort(con+1,con+n);
if(m<n-1){
while(m<n-1){
p[++m]=1;
}
sort(p+1,p+n);
}else{
sort(p+1,p+1+m);
while(m!=n-1){
p[m-1]=((p[m]%mod)*(p[m-1]%mod)%mod);
m--;
}
}
//sort(p+1,p+1+m);
ll ans=0;
for(int i=1;i<=n-1;++i){
ans+=((p[i]%mod)*(con[i]%mod))%mod;
}
cout<<ans%mod<<"\n";
}
return 0;
}
Codeforces Round #665 (Div. 2) 题解
原文:https://www.cnblogs.com/DrumWashingMachine-Lhy-NoobInCsu/p/13547874.html