温州做网站哪儿,新农村建设的网站,创网站多少钱,十大免费代理ip软件1. 评委打分
【问题描述】 校园卡拉OK比赛设置了7名评委#xff0c;当一名选手K完歌之后#xff0c;主持人报出歌手名字后#xff0c;7位评委同时亮分#xff0c;按照惯例#xff0c;去掉一个最高分和一个最低分后#xff0c;其余5位评委评分总和为该选手的最终得分。 一…1. 评委打分
【问题描述】 校园卡拉OK比赛设置了7名评委当一名选手K完歌之后主持人报出歌手名字后7位评委同时亮分按照惯例去掉一个最高分和一个最低分后其余5位评委评分总和为该选手的最终得分。 一共有n组选手参加比赛请你编写一个程序当所有比赛结束后列出所有选手的排名以及最终得分情况。 假定不会出现总分相同的情况总分相同时以出场顺序优先排名还是以后再说吧 呵呵暂时不管
【输入形式】 第1行为一个正整数n表示参赛人数。随后n行每行开始为选手的名字随后7个正整数表示评委亮分情况数据间以空格分隔。
【输出形式】 按名次升序输出所有选手的名字以及总分总共n行。
【样例输入】
4
Alice 90 90 85 92 90 90 90
Bob 92 99 88 92 92 92 92
Cindy 80 85 94 94 94 94 94
Dony 95 95 100 90 95 95 95
【样例输出】
Dony 475
Cindy 461
Bob 460
Alice 450
解答
#includebits/stdc.h
using namespace std;
struct m {string s;int sc[7];int max0,min101,sum0;}m2[100];
bool cmp(m a,m b) {return (a.sumb.sum) ;}
int main() {int k;cink;for(int i0;ik;i) {cinm2[i].s;for (int j 0; j 7; j) {cinm2[i].sc[j];m2[i].summ2[i].sc[j];if (m2[i].sc[j]m2[i].max) m2[i].maxm2[i].sc[j];if (m2[i].sc[j]m2[i].min) m2[i].minm2[i].sc[j];}m2[i].summ2[i].sum-m2[i].max-m2[i].min;}sort(m2,m2k,cmp);for(int i0;ik;i)coutm2[i].s m2[i].sumendl;} 2. 招聘
【问题描述】 某公司需要招聘一批员工该公司有自己独特的评价体系对应聘者设立了 3 个指标技能值 Ki、智慧值 Ii 和忠诚度 Ei i1, 2, ... 经过严格的初选和复选以及各项测试以后有 N 个人进入最后的名单公司给出了每个人的各项指标值并规定对于某人 i如果存在另外人 j有Ki Kj 、Ii Ij 、Ei Ej 则 i 将会被淘汰。 请找出总共有多少人会被淘汰。
【输入形式】 第一行包含一个整数 N 1≤ N ≤ 500000表示最终进入评价名单的人数。第二行包括 N 个整数 Ki第三行包含 N 个整数 Ii第四行包含 N 个整数 Ei 0 ≤ Ki、Ii 、 Ei ≤ 109。 【输出形式】 输出为一行一个整数。 【样例输入】
3
1 4 2
4 3 2
2 5 3
【样例输出】
1代码
#include iostream
#include vector
#include algorithmusing namespace std;struct Person {int K;int I;int E;
};int main() {int N;cin N;vectorPerson people(N);for (int i 0; i N; i) {cin people[i].K;}for (int i 0; i N; i) {cin people[i].I;}for (int i 0; i N; i) {cin people[i].E;}int eliminated 0;for (int i 0; i N; i) {for (int j 0; j N; j) {if (i ! j people[i].K people[j].K people[i].I people[j].I people[i].E people[j].E) {eliminated;break; // 当前 i 已经被淘汰不需要再比较了}}}cout eliminated endl;return 0;
}3. 选举
【问题描述】 在一场全国性选举中有n位候选人编号从1~n这个国家有m个城市已知每个城市每个候选人的得票数。 这个国家的选举制度很不寻常。在选举的第一阶段每个城市的票数被计算出来在每个城市获胜者为得票最多的候选人如果有相同得票数则编号最小的获胜。 在第二个阶段比较赢得的城市数赢得的城市最多者获胜如果赢得的城市数相等则编号小者获胜。 请确定最终谁将获得选举胜利。
【输入形式】 输入的第一行为两个正整数n和m (1 ≤ n, m ≤ 100)表示候选人的个数和城市的个数。 接下来的m行每行包含n个非负整数第i行的第j个数aij(1 ≤ j ≤ n, 1 ≤ i ≤ m, 0 ≤ aij ≤ 109) 表示第j个候选人在第i个城市的得票数。
【输出形式】 输出为一个数最终获胜者的编号。 【样例输入】
3 3
1 2 3
2 3 1
1 2 1
【样例输出】
2 代码
#include iostream
#include vectorusing namespace std;struct Candidate {int id;int totalVotes;int cityWins;
};int main() {int n, m;cin n m;vectorvectorint votes(m, vectorint(n));vectorCandidate candidates(n);for (int i 0; i n; i) {candidates[i].id i 1; // 编号从1开始candidates[i].totalVotes 0;candidates[i].cityWins 0;}for (int i 0; i m; i) {for (int j 0; j n; j) {cin votes[i][j];candidates[j].totalVotes votes[i][j];}}for (int i 0; i m; i) {int maxVotes -1;int winner -1;for (int j 0; j n; j) {if (votes[i][j] maxVotes || (votes[i][j] maxVotes j winner)) {maxVotes votes[i][j];winner j;}}candidates[winner].cityWins;}int finalWinner 0;for (int i 1; i n; i) {if (candidates[i].cityWins candidates[finalWinner].cityWins ||(candidates[i].cityWins candidates[finalWinner].cityWins candidates[i].id candidates[finalWinner].id)) {finalWinner i;}}cout candidates[finalWinner].id endl;return 0;
}4. 看电影
【问题描述】 湖南大学正在举办一场重要的国际学术会议出席会议的 n 位科学家来自不同的国家每位科学家都只熟悉一种语言为方便起见世界上所有的语言用1~1000的数字编号来列出。 晚上主办方安排所有科学家去看电影电影院里有 m 部电影每部电影可以用两个不同的整数来描述即音频语言和字幕语言的编号。看电影的科学家如果他熟悉电影的音频语言他会非常高兴如果他熟悉字幕的语言他基本上满意如果他两种都不熟悉他会感到不满意(请注意每部电影的音频语言和字幕语言总是不同的)。 科学家们决定一起去看同一部电影。你必须帮助他们选择电影使得非常高兴的科学家的数量是最大的如果有多部这样的电影在其中选择能使基本满意的科学家的数量最大如果还有多部则全部输出。如果没有这样的电影则输出unsatisfied。
【输入形式】 输入的第一行为一个正整数 n (1 ≤ n ≤ 200000) 表示科学家的数量。 第二行为 n 个正整数a1、a2、...、an (1 ≤ ai ≤ 1000)其中ai 表示第 i 位科学家熟悉的语言编号。 第三行包含一个正整数m(1 ≤ m ≤ 200000)表示电影院里的电影数量编号从1~m。 第四行包含 m 个正整数 b1, b2, ..., bm (1 ≤ bj ≤ 1000)其中 bj 表示第 j 部电影的音频语言。 第五行包含 m 个正整数 c1, c2, ..., cm (1 ≤ cj ≤ 1000)其中 cj 表示第 j 部电影的字幕语言。 输入保证 bj ≠ cj 。
【输出形式】 输出为若干整数从小到大表示科学家们可以去选择去看的电影的编号。如果没有这样的电影则输出unsatisfied。
【样例输入】
3
2 3 2
2
3 2
2 3
【样例输出】
2 #include iostream
#include vector
#include algorithmusing namespace std;struct Scientist {int id;int language;
};struct Movie {int id;int audioLanguage;int subtitlesLanguage;int happyScientists;int satisfiedScientists;
};bool compareMovies(const Movie a, const Movie b) {if (a.happyScientists ! b.happyScientists) {return a.happyScientists b.happyScientists;} else if (a.satisfiedScientists ! b.satisfiedScientists) {return a.satisfiedScientists b.satisfiedScientists;} else {return a.id b.id; // 保证编号小的在前面}
}int main() {int n;cin n;vectorScientist scientists(n);for (int i 0; i n; i) {scientists[i].id i 1;cin scientists[i].language;}int m;cin m;vectorMovie movies(m);for (int i 0; i m; i) {movies[i].id i 1;cin movies[i].audioLanguage;}for (int i 0; i m; i) {cin movies[i].subtitlesLanguage;movies[i].happyScientists 0;movies[i].satisfiedScientists 0;}for (const Scientist scientist : scientists) {for (Movie movie : movies) {if (scientist.language movie.audioLanguage) {movie.happyScientists;}if (scientist.language movie.subtitlesLanguage) {movie.satisfiedScientists;}}}sort(movies.begin(), movies.end(), compareMovies);if (movies[0].happyScientists 0) {cout unsatisfied endl;} else {for (const Movie movie : movies) {if (movie.happyScientists movies[0].happyScientists movie.satisfiedScientists movies[0].satisfiedScientists) {cout movie.id ;}}cout endl;}return 0;
}