日にちのタイトルワンパターン化
AOJ 0530
実装力不足で他人の参考にしながら書いてた
#include <cstdio> #include <cmath> #include <climits> #include <map> #include <vector> #include <algorithm> #define inf INT_MAX/2 #define f first #define s second using namespace std; typedef pair<int, int> P; int n, m; int main() { while (scanf("%d%d",&n,&m)) { if (!n&&!m) break; vector<P> riv[155]; vector<vector<vector<int> > > dp(155); for (int i=0; i<n; i++) { int k; scanf("%d",&k); riv[i].clear(); for (int j=0; j<k; j++) { int x, d; scanf("%d%d",&x,&d); riv[i].push_back(P(x,d)); } } for (int i=0; i<n; i++) { dp[i].resize(riv[i].size(), vector<int>(m+1,inf)); } for (int i=0; i<riv[0].size(); i++) { dp[0][i][0]=0; } for (int i=0; i<riv[1].size(); i++) { dp[1][i][1]=0; } int res=inf; for (int i=0; i<n; i++) { for (int j=0; j<riv[i].size(); j++) { for (int k=0; k<=m; k++) { if (i+1==n) { res=min(res,dp[i][j][k]); } else { for (int l=0; l<riv[i+1].size(); l++) { dp[i+1][l][k]=min(dp[i+1][l][k],dp[i][j][k]+(int)abs(riv[i][j].f-riv[i+1][l].f)*(riv[i][j].s+riv[i+1][l].s)); } if (i<n-1&&k<m) { if (i+2==n) { res=min(res,dp[i][j][k]); } else { for (int l=0; l<riv[i+2].size(); l++) { dp[i+2][l][k+1]=min(dp[i+2][l][k+1],dp[i][j][k]+(int)abs(riv[i][j].f-riv[i+2][l].f)*(riv[i][j].s+riv[i+2][l].s)); } } } } } } } printf("%d\n",res); } }
VK CUP ROUND 2
非公式Div.2ラウンドへの参加
1311->1287(-24)
A
読み間違えで-150もしてしまった・・・
#include <cstdio> #include <algorithm> using namespace std; int n, a, b; int h[2000]; int main() { scanf("%d%d%d",&n,&a,&b); for (int i=0; i<n; i++) scanf("%d",&h[i]); sort(h, h+n); int x1=h[b-1]; int x2=h[b]; printf("%d\n",x2-x1); }
B
やるだけ
#include <iostream> #include <algorithm> using namespace std; string a, s; int main() { cin>>a>>s; sort(s.rbegin(), s.rend()); int sp=0; for (int i=0; i<a.length(); i++) { if (sp<s.length()&&s[sp]>a[i]) { a[i]=s[sp]; sp++; } } cout<<a<<endl; }
C
とてつもなく難しい貪欲だったらしいです
無理
D
貪欲とかDPぽかったけどスルー
E
読んでない
結果
人権剥奪。読み間違えよくない