QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#776601 | #8760. 不等式 | WilliamFung | WA | 3ms | 10064kb | C++11 | 3.1kb | 2024-11-23 19:38:24 | 2024-11-23 19:38:25 |
Judging History
answer
#include <bits/stdc++.h>
#define endl '\n'
#define all(a) a.begin(), a.end()
#define ll long long
#define ull unsigned long long
#define inf 0x7fffffff;
//#define int long long
//#define III int
using namespace std;
using vi = vector<int>;
using vl = vector<ll>;
using vii = vector<vector<int>>;
using vll = vector<vector<ll>>;
using vpii = vector<pair<int, int>>;
using vpll = vector<pair<ll, ll>>;
//cout << ceil(-0.2) << endl;
const ll mod = 1e9 + 7;
//const ll mod = 998244353;
const ll INF = 1e18;
// struct node {
// ll dis, u;
// int hh;
// bool operator>(const node &a) const {return dis > a.dis;}
// };
struct now {
ll a, b;
bool operator<(const now& x) const {
return a < x.a;
}
};
ll qpow (ll a, ll b) {
ll ret = 1;
a %= mod;
while (b) {
if (b & 1) {
ret *= a;
ret %= mod;
}
b /= 2;
a = (a * a) % mod;
}
return ret;
}
ll cmp (ll a, ll b) {
if (a == 0) return 0;
if (a > b / 2) a = b - a;
ll x = 1, y = 1;
for (int i = 0; i < a; i++) {
x *= b - i;
x %= mod;
}
for (int i = 1; i <= a; i++) {
y *= i;
y %= mod;
}
ll ret = x * qpow(y, mod - 2);
ret %= mod;
return ret;
}
int dir[4][2] = {{0, 1}, {0, -1}, {1, 0}, {-1, 0}};
struct node {
ll w, l, r;
};
// //int n;
// ll tree[500005];
// int lowbit(int x) {
// return x & (-x);
// }
// void add(int l, ll x) {
// for (int i = l; i <= n; i += lowbit(i)) {
// tree[i] += x;
// }
// }
// ll sum(int r) {
// ll ret = 0;
// for (int i = r; i >= 1; i -= lowbit(i)) {
// ret += tree[i];
// }
// return ret;
// }
int n, m;
ll in[200010];
vector<pair<int, int>> g[200010];
void solve() {
cin >> n >> m;
for (int i = 1; i <= m; i++) {
int a, b, c;
cin >> a >> b >> c;
g[b].emplace_back(a, c);
if (c != b) g[c].emplace_back(a, b);
in[a]++;
}
queue<int> q;
vector<ll> ans(n + 1);
vector<int> flag(n + 1);
for (int i = 1; i <= n; i++) {
if (in[i] == 0) {
q.push(i);
ans[i] = 1;
flag[i] = 1;
}
}
while (!q.empty()) {
int u = q.front();
q.pop();
for (auto p : g[u]) {
if (flag[p.first]) continue;
if (flag[p.second]) {
ans[p.first] = max(ans[p.first], ans[u] + ans[p.second]);
in[p.first]--;
if (in[p.first] == 0) {
q.push(p.first);
flag[p.first] = 1;
}
}
}
}
for (int i = 1; i <= n; i++) {
if (flag[i] == 0) {
cout << -1 << endl;
return;
}
}
ll sum = 0;
for (int i = 1; i <= n; i++) {
sum += ans[i];
}
cout << sum << endl;
}
int main() {
std::ios::sync_with_stdio(false); std::cin.tie(nullptr); std::cout.tie(nullptr);
// helper();
int t = 1;
//cin >> t;
while (t--) solve();
return 0;
}
详细
Test #1:
score: 100
Accepted
time: 3ms
memory: 8532kb
input:
3 1 1 2 2
output:
4
result:
ok 1 number(s): "4"
Test #2:
score: 0
Accepted
time: 0ms
memory: 9196kb
input:
3 1 1 2 3
output:
4
result:
ok 1 number(s): "4"
Test #3:
score: 0
Accepted
time: 3ms
memory: 9324kb
input:
3 1 1 2 2
output:
4
result:
ok 1 number(s): "4"
Test #4:
score: 0
Accepted
time: 0ms
memory: 8232kb
input:
3 1 1 2 2
output:
4
result:
ok 1 number(s): "4"
Test #5:
score: 0
Accepted
time: 2ms
memory: 8700kb
input:
3 1 1 2 2
output:
4
result:
ok 1 number(s): "4"
Test #6:
score: 0
Accepted
time: 0ms
memory: 10064kb
input:
5 1 1 2 2
output:
6
result:
ok 1 number(s): "6"
Test #7:
score: 0
Accepted
time: 0ms
memory: 9264kb
input:
5 1 1 2 2
output:
6
result:
ok 1 number(s): "6"
Test #8:
score: 0
Accepted
time: 0ms
memory: 9472kb
input:
5 1 1 2 2
output:
6
result:
ok 1 number(s): "6"
Test #9:
score: 0
Accepted
time: 0ms
memory: 8292kb
input:
5 1 1 2 3
output:
6
result:
ok 1 number(s): "6"
Test #10:
score: 0
Accepted
time: 0ms
memory: 9392kb
input:
5 2 1 2 3 2 3 4
output:
8
result:
ok 1 number(s): "8"
Test #11:
score: 0
Accepted
time: 3ms
memory: 9460kb
input:
10 1 1 2 3
output:
11
result:
ok 1 number(s): "11"
Test #12:
score: 0
Accepted
time: 0ms
memory: 9556kb
input:
10 1 1 2 2
output:
11
result:
ok 1 number(s): "11"
Test #13:
score: 0
Accepted
time: 3ms
memory: 9728kb
input:
10 2 1 2 3 2 3 4
output:
13
result:
ok 1 number(s): "13"
Test #14:
score: 0
Accepted
time: 0ms
memory: 9676kb
input:
10 2 1 2 2 2 3 4
output:
14
result:
ok 1 number(s): "14"
Test #15:
score: 0
Accepted
time: 0ms
memory: 8744kb
input:
10 3 1 2 3 1 8 8 2 3 3
output:
13
result:
ok 1 number(s): "13"
Test #16:
score: 0
Accepted
time: 0ms
memory: 8724kb
input:
20 1 1 2 2
output:
21
result:
ok 1 number(s): "21"
Test #17:
score: 0
Accepted
time: 3ms
memory: 9832kb
input:
20 2 1 2 3 2 3 3
output:
23
result:
ok 1 number(s): "23"
Test #18:
score: 0
Accepted
time: 2ms
memory: 8484kb
input:
20 3 7 14 6 1 2 3 4 7 20
output:
24
result:
ok 1 number(s): "24"
Test #19:
score: 0
Accepted
time: 2ms
memory: 8692kb
input:
20 4 1 2 2 6 10 6 2 3 3 3 4 5
output:
-1
result:
ok 1 number(s): "-1"
Test #20:
score: -100
Wrong Answer
time: 0ms
memory: 8772kb
input:
20 5 1 17 3 1 2 3 2 3 4 3 4 5 8 13 16
output:
26
result:
wrong answer 1st numbers differ - expected: '28', found: '26'