1008
签到题,模拟
#include <bits/stdc++.h>
using namespace std ;
int a[4];
void solve() {
cin>>a[1]>>a[2]>>a[3];
sort(a+1,a+1+3);
int d = a[3] - a[1];
bool ok = false ;
/*if(d < a[2] && a[2] + a[1] >a[3]) {
ok = true ;
cout<<"Win"<<endl;
return ;
}*/
if(a[3] == a[1] + a[2] - 1) {
cout<<"Lose"<<endl;
return ;
}
if(d >= a[2] ) {
int s;
s = a[2] - a[1] + 1;
if(a[2] - min(s,a[1]) > max(s,a[1])) {
ok = true ;
cout<<"Win"<<endl;
return ;
}else {
cout<<"Lose"<<endl;
return;
}
/*s = a[3] - a[1] + 1;
if(a[3] - a[1] > s) {
ok = true ;
cout<<"Win"<<endl;
return ;
}*/
}
cout<<"Win"<<endl;
}
int main () {
int t;
cin>>t;
while(t--) {
solve();
}
}
1003
简单图论dfs就行
#include <bits/stdc++.h>
using namespace std ;
#define ll long long
#define endl '\n'
const int mod = 1000000007;
const int N = 500005;
int n,q;
int dep[N];
vector <int> e[N];
struct node{
int num,le,bo,he,ar;
}z[N];
void dfs(int u,int f) {
z[u].num = e[u].size();
dep[u] = dep[f] + 1;
for(auto p:e[u] ) {
int v = p;
if(v == f) continue;
dfs(v,u);
}
}
void dfss(int u,int f) {
for(auto p:e[u]) {
int v = p;
if(v==f) continue ;
if()
}
}
void solve() {
cin>>n;
for(int i=1;i<=n;i++) {
int u,v;
cin>>v>>u;
e[v].push_back(u);
e[u].push_back(v);
}
dfs(1,0);
dfss(1,0);
}
int main () {
ios::sync_with_stdio(false) ,cin.tie(0);
int t;
cin>>t;
while(t--) {
solve();
}
}
1004
写了半个小时发现我想复杂了。。。其实很简单情况很少
#include <bits/stdc++.h>
using namespace std ;
#define ll long long
#define endl '\n'
int p,q,i,j;
ll solve2(int a,int b,int c,int d) {
ll ans = 0;
/*int aa=0,dd=0;
int minn = min(c,b);
aa = min(minn,a);
b -= aa, c -= aa;
minn = min(c,b);
// dd= min(minn,d) ;
// cout<<"dd is "<<dd<<endl;
// b -= dd,c -=dd;
int l = min(b,c);
ans += 2*l;
ans += 2*(aa+dd);
/*if(b!=c) {
aa += min(b,c);
b -= min(b,c);
c -= min(b,c);
ans += max(b,c) - 1;
a++;
if(d>a) ans--;
}
//if(b==c) ans+=b*2;
ans += min(a,d)*2;
if(a>d) ans+=a-d;
if(d>a && a!=0) ans+=1;
*/
ans += c + b ;
if(d>a) ans+=2*a+1;
else ans += a+d;
// cout<<a<<" "<<b<<" "<<c<<" "<<d<<" "<<endl;
// cout<<aa<<" "<<dd<<" "<<endl;
return ans;
}
ll solve1(int a,int b,int c,int d) {
swap(a,d);
ll ans = 0;
if(a>0) a=1;
if(b>0 || c>0) a=0;
ans += d + a + max(b,c);
return ans;
}
void solve() {
cin>>p>>q>>i>>j;
cout<<solve1(p,q,i,j)<<" "<<solve2(p,q,i,j)<<endl;
}
int main () {
ios::sync_with_stdio(false) ,cin.tie(0);
int t;
cin>>t;
while(t--) {
solve();
}
}