P8086 『JROI-5』Music 题解

注意坑点:看到题目,点进赛时公告板,有一行字:不保证数据类型一定正确。说明什么?不开long long见祖宗!

然后就是模拟,因为 \(n\) 有 \(10^7\),所以得使用 \(\Theta(n)\) 的复杂度,那么开一个 \(bool\) 数组,记录歌曲是否听过(虽然 \(bool\) 数组开 \(10^7\) 有点危险,但不会 \(MLE\))。

最后,上代码,习惯了,所以快读快些都放上了(说实话最后一个输出好像也没快多少)。

#include<bits/stdc++.h>
#define ll long long
using namespace std;
inline ll read() {
	int x = 0; bool flag = 1; char c = getchar();
	while(c < '0' || c > '9') { if(c == '-') flag = 0; c = getchar(); }
	while(c >= '0' && c <= '9') { x = (x << 1) + (x << 3) + c - '0'; c = getchar(); }
	return (flag ? x : ~(x - 1));
}
inline void write(ll x) {
    if (x < 0) putchar('-'), x = -x;
    if (x > 9) write(x / 10);
    putchar(x % 10 + '0');
}
int n; 
ll ans; 
bool islisten[10000005];
int main() {
	n = read();
	for(int i = 1; i <= n; i++) {
		int x = read();
		ll t = read();
		if(t <= 1 || islisten[x]) continue;
		else ans += t, islisten[x] = true;
	}
	write(ans);
	return 0;
}

上一篇:为WPF的Grid添加边框线


下一篇:maven 单元测试