Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
Re:我就搞不懂了 同一个代买 g++提交 tle c++提交a了????In Reply To:Re:我就搞不懂了 同一个代买 g++提交 tle c++提交a了???? Posted by:jianqiming at 2019-11-25 21:54:18 > #include <iostream> > #include<string> > #include<vector> > #include<algorithm> > #include<cstring> > #include<cmath> > #include<map> > #include<set> > #include<queue> > #include<cstdio> > using namespace std; > typedef long long ll; > const ll inf = 0xfffffffff; > int vis[6005], ne[200]; > double a[5005], b[5005], ans[5005]; > /*ll gcd(ll a, ll b) > { > return b ? gcd(b, a%b) : a; > } > int phi(int x) { > int ans = x; > for (int i = 2; i*i <= x; i++) { > if (x % i == 0) { > ans = ans / i * (i - 1); > while (x % i == 0) x /= i; > } > } > if (x > 1) > ans = ans / x * (x - 1); > return ans; > } > int is(int a) > { > if (a % 400 == 0 || a % 4 == 0 && a % 100 != 0) > return 1; > else return 0; > } > ll qu(ll a, ll b, ll c) > { > ll ans = 1; > while (b) > { > > if (b & 1) > ans = (ans%c*a%c) % c; > b >>= 1; > a = (a%c*a%c) % c; > } > return ans % c; > } > void ge(string a) > { > int j = 0, k = -1; > int n = a.size(); > memset(ne, 0, sizeof(ne)); > ne[0] = -1; > while (j < n) > { > > if (k == -1 || a[j] == a[k]) > ne[++j] = ++k; > else k = ne[k]; > } > > }int kmp(string a, string b) > { > int j = 0, i = 0; > ge(b); > int m = a.size(); int n = b.size(); > while (i < m&&j < n) > { > if (b[j] == a[i] || j == -1) > i++, j++; > else j = ne[j]; > > } > if (j == n) > return 1; > else return 0; > > }*/ > double cmp(double a, double b) > { > > return a > b; > } > int main() > { > ios::sync_with_stdio(false); > int m, n, c, t, k; string s; > while (cin >> n >> k) > { > if (n == 0 && k == 0) > break; > for (int i = 0; i < n; i++) > cin >> a[i]; > for (int i = 0; i < n; i++) > cin >> b[i]; > double r = 1.0, l = 0; > while(r-l>=1e-6) > {double res = 0; > double mid = (r + l) / 2; > for (int i = 0; i < n; i++) > { > ans[i] = a[i] - mid * b[i]; > } > sort(ans, ans + n,cmp); > for (int i = 0; i < n - k; i++) > res += ans[i]; > if (res >= 0) > l = mid; > else r = mid; > } > > cout << (int)(r * 100 + 0.5) << endl; > > } > return 0; > } Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator