Quantcast
Channel: 初心者タグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 21503

Pythonで毎日AtCoder #46

$
0
0

はじめに

前回

#46

ABC131-D

考えたこと
$B_i$でsortして仕事を終らせるのに必要な時間を計算していきます。制限時間を越えたらflagを変えます。

n=int(input())ab=[list(map(int,input().split()))for_inrange(n)]ab.sort(key=lambdax:x[1])t=0flag=Trueforiinrange(n):t+=ab[i][0]ift>ab[i][1]:flag=Falseifflag:print('Yes')else:print('No')

ARC093-C

考えたこと
Nの大きさ的に$O(N^2)$は通せません。なので、うまく$O(N)$くらいにします。スタートとゴールの座標は0なので、左右に0を追加します。dを$|a[i+1]-a[i]|、0\leq i \leq N$、dの総和$sum(d)$をsとします。すると、観光スポット$i$をスキップしたときは、$s+|a[i+1]-a[i-1]|-(|a[i]-a[i-1]|+|a[i+1]-a[i]|$となります。

n=int(input())a=list(map(int,input().split()))a.insert(0,0)a.append(0)d=[abs(a[i]-a[i+1])foriinrange(n+1)]s=sum(d)foriinrange(1,n+1):print(s+abs(a[i-1]-a[i+1])-(abs(a[i-1]-a[i])+abs(a[i]-a[i+1])))

まとめ

2問目は少し考えてしまった。Nが大きいから計算量を減らさないといけないのは気付いたけど、減らし方がうまくできなかった。ではまた、おやすみなさい。


Viewing all articles
Browse latest Browse all 21503

Latest Images

Trending Articles