昨日
とりあえず。
今日は忙しいかもしれません。
2437
始点を更新するようにやるとボツるらしいです。
しっかり最後の端をおぼえとかなあかん
#include <cstdio> #include <cmath> #include <map> #include <algorithm> #define f first #define s second using namespace std; int main() { int n, l; scanf("%d%d",&n,&l); int ls=-1, res=0; pair<int, int> mud[n]; for (int i=0; i<n; i++) { scanf("%d%d",&mud[i].f,&mud[i].s); } sort(mud, mud+n); for (int i=0; i<n; i++) { int s=mud[i].f, e=mud[i].s; if (e<ls) continue; ls=max(ls,s); int k=(e-ls)/l+((e-ls)%l!=0); ls+=k*l; res+=k; } printf("%d\n",res); }
3624
全然通らなくてネットでみんな配列グローバルにしてたのでそうしたら通った。
#include <cstdio> #include <algorithm> using namespace std; int n,m,w[3402],v[3402]; int dp[12881]; int main() { scanf("%d%d",&n,&m); int ans=0; for (int i=0; i<n; i++) scanf("%d%d",&w[i],&v[i]); for (int i=0; i<m; i++) dp[i]=0; for (int i=0; i<n; i++) { for (int j=m; j>=w[i]; j--) { dp[j]=max(dp[j],dp[j-w[i]]+v[i]); ans=max(ans,dp[j]); } } printf("%d\n",ans); }
2231
なんだかんだやるだけですが、気をつけようと思ってたのにlong longにするの忘れてていろいろ試して大量WA
#include <cstdio> #include <cmath> #include <algorithm> using namespace std; typedef long long ll; int main() { int n; scanf("%d",&n); int cow[n]; for (int i=0; i<n; i++) scanf("%d",&cow[i]); sort(cow, cow+n); ll dis=0; for (int i=0; i<n; i++) { for (int j=i+1; j<n; j++) dis+=abs(cow[j]-cow[i]); } printf("%lld\n",dis*2); }