A
余裕書いたときには覚えてなくて見返した
pythonはスライス使ってできた
S = input()
if S[-3:] == "san":
print("Yes")
else:
print("No")
B
問題分の習慣を僕がやるんだったら怖くて言えない(実際)
for文回して違うところを検出して出力する
完全一致パターンが面倒くさいので最初に弾く
S = input()
T = input()
if S == T:
print(0)
exit()
for i in range(min(len(S), len(T))):
if S[i] != T[i]:
print(i + 1)
exit()
print(min(len(S), len(T)) + 1)
C
bit全探索で解ける
具体的には
AとBをBIT全探索で振り分ける
cythonがbit全探索でTLEでペナ食らって結局なれてないRustで書き直しました
(追記)
pypyで提出すればACするようです
おそらくcpythonでもTLEすると思います<<自分でやれ
申し訳ございません
最大ケースでeasytestがcythonで2800msぐらいだったのがRustは68msでした
バケモンみたいな速度ですねおよそ41倍
pythonは見た感じbit全探索じゃない解法があるっぽいです
//ライブラリ
use std::{collections::HashSet, i32, usize, vec};
use proconio::input;
fn main() {
input! {
n:u32,
k:[i64;n]
}
let mut r = 0_i64;
for i in 0..(2_i32.pow(n)) {
let mut a = 0;
let mut b = 0;
for t in 0..n {
let tmp = t as i32;
if (i >> t) & 1 == 1 {
a += k[t as usize]
} else {
b += k[t as usize]
}
}
if i == 0 {
r = a.max(b)
} else {
r = r.min(a.max(b))
}
}
print!("{}", r)
}
D
最初貪欲法を思いつき50分ぐらいかけたがWAのこり5分で 線分の部分の総和もとめてそれ+順列全探索して最小値を求めるて始点と終点をどっちから初めていい問題はbit全探索で解く解法を思いついたが時間切れでACできませんでした
WAのコード(貪欲)はゴミコードなのでお見せできないです
同じような処理二回書いてましたw
具体的に pythonで
あとまだ解説ACしてないやつが思いついた解法なので温かい目でご覧ください
それも解説丸パクリ一応自分で要約してます
まずは線分のユークリッド距離/レーザー照射速度の総和を取る
そして現在位置の変数を用意して(x,y)などitertools.permutationsで順列全探索を始める
そこにbit全探索を追加してTrueなら始点からFalseなら終点からというように実装して最後に最小値を出力する
解説URL
最後に
600ぐらいのパフォ出せれば入茶だったのに泣
更新後のレートは357→373でした
ID
Xの年齢制限でXの感想戦に出られないのでこの形ですw