| ||||||||||
| 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:我就搞不懂了 同一个代买 g++提交 tle c++提交a了???? Posted by:jianqiming at 2019-11-25 21:53:59 > 浪费我时间找半天bug 口区
#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