郑州建设网店网站,当阳市住房和城乡建设局网站,学做网站平台,谷歌手机版下载安装题意#xff1a;有n个选手参加比赛#xff0c;比赛有3个题目#xff0c;每个选手每个题目都有一个评测之前的于得分#xff0c;当通过题目时才可以得到相应分数#xff0c;否则为0#xff0c;然后按照得分排名#xff0c;id小的排在前面#xff0c;现在给定选手的于得分…
题意有n个选手参加比赛比赛有3个题目每个选手每个题目都有一个评测之前的于得分当通过题目时才可以得到相应分数否则为0然后按照得分排名id小的排在前面现在给定选手的于得分和排名求最后一名的最大得分。 思路贪心要想使最后一名的成绩最大那么只要保证前面的成绩最大即可。可以把小数化成整数。 code
#include iostream
#include cstdio
#include cmath
#include algorithm
#include cstring
#include sstream
#include string
#include vector
#include list
#include queue
#include stack
#include map
#include set
#include bitsetusing namespace std;typedef long long ll;
typedef unsigned long long ull;
typedef long double ld;const int INF0x3fffffff;
const int inf-INF;
const int N1000000;
const int M20005;
const int mod1000000007;
const double esp1e-4;
const double piacos(-1.0);#define cls(x,c) memset(x,c,sizeof(x))
#define cpy(x,a) memcpy(x,a,sizeof(a))
#define fr(i,s,n) for (int is;in;i)
#define lson l,m,rt1
#define rson m1,r,rt1|1
#define lrt rt1
#define rrt rt1|1
#define middle int m(rl)1
#define lowbit(x) (x-x)
#define pii pairint,int
#define mk make_pair
#define IN freopen(in.txt,r,stdin);
#define OUT freopen(out.txt,w,stdout);double v[M][8];
int main()
{int ca1,n;while (~scanf(%d,n)n){double a,b,c;fr(i,1,n){scanf(%lf %lf %lf,a,b,c);a(int)((aesp)*100),b(int)((besp)*100),c(int)((cesp)*100);v[i][0]0,v[i][1]a,v[i][2]b,v[i][3]c,v[i][4]ab;v[i][5]ac,v[i][6]bc,v[i][7]abc;sort(v[i],v[i]8);}int la,ne,ok1;scanf(%d,la);double tv[la][7];fr(i,2,n){scanf(%d,ne);if (nela){for (int j7;j0;j--) if (tv[ne][j]) {tv[ne][j];break;}}else{int tt0;for (int j7;j0;j--) if (tv[ne][j]) {tv[ne][j];tt1;break;}if (!tt) ok0;}lane;}printf(Case %d: ,ca);if (ok) printf(%.2lf\n,0.01*t);else puts(No solution);}
}