#include <iostream>#include<map>#include<math.h>using namespacestd;intMain () {DoubleA, B; CIN>> a >>b; intN; CIN>>N; DoubleMIN =1e10; while(n--) { Doublex, y, V; CIN>> x >> y >>v; DoubleTMP = sqrt ((a-x) * (a-x) + (b-y) * (b-y))/v; if(TMP < MIN) MIN =tmp; } printf ("%.10lf\n", MIN); return 0;}
View Code
#include <iostream>#include<map>#include<math.h>#include<algorithm>#include<string>using namespacestd;intx[100000];intMain () {intN, Q; CIN>>N; for(inti =0; I < n; i++) Cin>>X[i]; Sort (x, x+N); CIN>>Q; while(q--) { intm; CIN>>m; if(M < x[0]) {cout<<0<<Endl; Continue; } if(M >= x[n-1]) {cout<< N <<Endl; Continue; } intL =0, R = N-1, Mid; while(1) {Mid= (L + r) >>1; if(M < X[mid]) R =mid; ElseL =mid; if(L = = R | | L +1= = R) Break; } cout<< L +1<<Endl; } //System ("pause"); return 0;}
View Code
F[i][0] means the first I sequence and the first I do not flip the minimum cost, f[i][1] represents the first I sequence and the first I flip the minimum cost.
#include <iostream>#include<map>#include<math.h>#include<algorithm>#include<string>using namespacestd;Long Longdp[110000][2];BOOLcmp[110000][2][2];Long Longc[110000];strings[110000], r[110000];intMain () {intN; CIN>>N; for(inti =1; I <= N; i++) Cin>>C[i]; for(inti =1; I <= N; i++) {cin>>S[i]; R[i]=S[i]; Reverse (R[i].begin (), R[i].end ()); } for(inti =2; I <= N; i++) { if(S[i-1] <= S[i]) cmp[i][0][0] =true; Elsecmp[i][0][0] =false; if(R[i-1] <= S[i]) cmp[i][0][1] =true; Elsecmp[i][0][1] =false; if(S[i-1] <= R[i]) cmp[i][1][0] =true; Elsecmp[i][1][0] =false; if(R[i-1] <= R[i]) cmp[i][1][1] =true; Elsecmp[i][1][1] =false; } dp[1][0] =0; dp[1][1] = c[1]; for(inti =2; I <= N; i++) {dp[i][0] =1e15; if(cmp[i][0][0] && Dp[i-1][0] < dp[i][0]) dp[i][0] = Dp[i-1][0]; if(cmp[i][0][1] && Dp[i-1][1] < dp[i][0]) dp[i][0] = Dp[i-1][1]; dp[i][1] =1e15; if(cmp[i][1][0] && Dp[i-1][0] + C[i] < dp[i][1]) dp[i][1] = Dp[i-1][0] +C[i]; if(cmp[i][1][1] && Dp[i-1][1] + C[i] < dp[i][1]) dp[i][1] = Dp[i-1][1] +C[i]; } Long Longans; if(dp[n][0] < dp[n][1]) ans = dp[n][0]; ElseAns = dp[n][1]; if(ans = = 1e15) cout <<-1<<Endl; Elsecout << ans <<Endl; //System ("pause"); return 0;}
View Code
#include <bits/stdc++.h>#include<Set>using namespaceStd;multiset<int>MS;intMain () {intN; CIN>>N; Ms.clear (); Ms.insert (0); while(n--) { Charch; intx; CIN>> CH >>x; if(ch = ='+') Ms.insert (x); if(ch = ='-') Ms.erase (Ms.find (x)); if(ch = ='?') { intAns =0; for(inti = -; I >=0; i--) { inttmp; if((X & (1<< i) = =0) {tmp= Ans | (1<<i); Auto It=Ms.lower_bound (TMP); if(It = = Ms.end ())Continue; if((*it)-tmp >= (1<< i))Continue; if((*it) & (1<< i)) ans |= (1<<i); } Else{Auto It=ms.lower_bound (ans); intdebug = *it; if((*it) & (1<< i)) ans |= (1<<i); }} cout<< (ans ^ x) <<Endl; } } return 0;}
View Code
Codeforces Round #367 Div. 2 [11110]