A 梦想赛道
分析
在原树的基础上,选一条之前存在的边加一条边权为 的边即可.
代码实现
#include <bits/stdc++.h>
using namespace std;
template <typename T>
inline void read(T& x)
{
x = 0; int f = 1; char ch = getchar();
while(!isdigit(ch)) {if(ch == '-') f = -1; ch = getchar();}
while(isdigit(ch)) {x = x * 10 + ch - '0', ch = getchar();}
x *= f;
}
template <typename T>
void print(T x)
{
if(x < 0) putchar('-'), x = -x;
if(x > 9) print(x / 10);
putchar(x % 10 + '0');
}
template <typename T>
void print(T x, char ch)
{
print(x), putchar(ch);
}
typedef double db;
typedef long long ll;
const int M = (int)1e5;
const int N = (int)1e5;
const int inf = 0x3f3f3f3f;
const ll mod = (ll)1e9 + 7;
void work()
{
int n; read(n);
int s = 0, mx = 0;
for(int i = 2, u, v, w; i <= n; ++i)
{
read(u), read(v), read(w);
s += w, mx = max(mx, w);
}
if(mx == 1) print(-1, '\n');
else print(s + 1, '\n');
}
int main()
{
// ios::sync_with_stdio(0);
// cin.tie(0); cout.tie(0);
// freopen("input.txt", "r", stdin);
// freopen("output.txt", "w", stdout);
// int T; read(T);
// for(int ca = 1; ca <= T; ++ca)
// {
// work();
// }
work();
// cerr << 1.0 * clock() / CLOCKS_PER_SEC << "\n";
return 0;
}
B 寒冬信使
分析
从后往前模拟即可.
代码实现
#include <bits/stdc++.h>
using namespace std;
template <typename T>
inline void read(T& x)
{
x = 0; int f = 1; char ch = getchar();
while(!isdigit(ch)) {if(ch == '-') f = -1; ch = getchar();}
while(isdigit(ch)) {x = x * 10 + ch - '0', ch = getchar();}
x *= f;
}
template <typename T>
void print(T x)
{
if(x < 0) putchar('-'), x = -x;
if(x > 9) print(x / 10);
putchar(x % 10 + '0');
}
template <typename T>
void print(T x, char ch)
{
print(x), putchar(ch);
}
typedef double db;
typedef long long ll;
const int M = (int)1e5;
const int N = (int)1e5;
const int inf = 0x3f3f3f3f;
const ll mod = (ll)1e9 + 7;
char s[M + 5];
void work()
{
scanf("%s", s + 1);
int n = strlen(s + 1);
int ans = 0;
for(int i = n; i >= 1; --i)
{
if(s[i] == '1') ++ans, s[i - 1] ^= 1;
}
puts(!(ans & 1) ? "X" : "T");
}
int main()
{
// ios::sync_with_stdio(0);
// cin.tie(0); cout.tie(0);
// freopen("input.txt", "r", stdin);
// freopen("output.txt", "w", stdout);
int T; read(T);
for(int ca = 1; ca <= T; ++ca)
{
work();
}
// work();
// cerr << 1.0 * clock() / CLOCKS_PER_SEC << "\n";
return 0;
}