ホームページ  >  記事  >  ウェブフロントエンド  >  Codeforces ラウンド #264 (ディビジョン 2)_html/css_WEB-ITnose

Codeforces ラウンド #264 (ディビジョン 2)_html/css_WEB-ITnose

WBOY
WBOYオリジナル
2016-06-24 11:58:451068ブラウズ

Codeforces Round #264 (Div. 2)

質問リンク

A: 特別な判定がちょうど良い状況に注意してください。残りはレコードの最大値を 1 つずつ判断するだけです

B: スキャンします。一度それを実行し、足りない場合はお金で埋めて、余剰エネルギーを記録します

C: 主対角線と補助対角線を処理し、黒と白の正方形の最大のもののみを選択します

D: DAG に変換します。最長経路問題、それぞれの数字を記録する 各シーケンスの位置で、数字を置くことができる場合、各シーケンスの数字は最後の数字の後ろにある必要があります

E: 苦労して奇跡を起こし、ツリーを前処理し、その後、毎回クエリを実行します。現在の位置から一致するものを見つけるだけです。一致するものがない場合は、-1

コード:

A:

#include <cstdio>#include <cstring>#include <algorithm>using namespace std;int n, s;int main() {	scanf("%d%d", &n, &s);	int x, y;	int flag = 1;	int ans = 0;	for (int i = 0; i < n; i++) {		scanf("%d%d", &x, &y);		if (x == s) {			if (y == 0) {				ans = max(ans, y);				flag = 0;			}		}		else if (x < s) {			ans = max(ans, (100 - y) % 100);			flag = 0;		}	}	if (flag) printf("-1\n");	else printf("%d\n", ans);	return 0;}

B:

#include <cstdio>#include <cstring>const int N = 100005;typedef long long ll;int n;ll h[N];int main() {	scanf("%d", &n);	for (int i = 1; i <= n; i++)		scanf("%lld", &h[i]);	ll now = 0;	ll ans = 0;	for (int i = 1; i <= n; i++) {		if (h[i] > h[i - 1]) {			ll need = h[i] - h[i - 1];			if (now >= need) {				now -= need;			} else {				ans += need - now;				now = 0;			}		} else {			now += h[i - 1] - h[i];		}	}	printf("%lld\n", ans);	return 0;}

C:

rree
D :

rree
E:

rree

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。