P7033 [NWRRC 2016] CodeCoder vs TopForces题目描述在 Byteland竞赛编程非常流行。事实上每位 Byteland 的公民都在两个编程网站——CodeCoder 和 TopForces 上注册。每个网站都有自己专有的评分系统。每位公民在每个网站上都有一个唯一的整数评分代表他们的技能。评分越高技能越好。Byteland 的人天生乐观。公民 A 认为如果存在一个 Byteland 公民的序列AP0,P1,...,PkBA P_{0}, P_{1},...,P_{k} BAP0​,P1​,...,Pk​B对于某个k≥1k \ge 1k≥1使得对于每个i(0≤ik)i (0 \le i k)i(0≤ik)PiP_{i}Pi​在一个或两个网站上的评分都高于Pi1P_{i1}Pi1​那么他就有机会在编程比赛中击败公民 B。每位 Byteland 公民都想知道他们在编程比赛中可能击败多少其他公民。输入格式输入的第一行包含一个整数nnn——公民的数量(1≤n≤100000)(1 \le n \le 100 000)(1≤n≤100000)。接下来的nnn行包含关于评分的信息。第iii行包含两个整数CCiCC_{i}CCi​和TFiTF_{i}TFi​——第iii位公民在 CodeCoder 和 TopForces 上的评分(1≤CCi,TFi≤106)(1 \le CC_{i}, TF_{i} \le 10^{6})(1≤CCi​,TFi​≤106)。每个网站上的所有评分都是不同的。输出格式对于每位公民iii输出一个整数bib_{i}bi​——他们在编程比赛中可能击败的其他公民数量。每个bib_{i}bi​应该单独一行输出顺序与输入中给出的公民顺序相同。输入输出样例 #1输入 #14 2 3 3 2 1 1 4 5输出 #12 2 0 3说明/提示时间限制2 秒内存限制256 MB。题面翻译由 ChatGPT-4o 提供。C实现#includebits/stdc.husingnamespacestd;structnode{inted[5],id,T,C;}di[114514];boolcmp(node i,node j){returni.Cj.C;}boolpmc(node i,node j){returni.Tj.T;}intans[114514],n,t[114514],su;//ed[] 和 id 存原编号t[i] 存 i 现编号boolused[114514];voiddfs(intpos){su;used[pos]true;for(inti1;idi[pos].ed[0];i){intnxtt[di[pos].ed[i]];if(!used[nxt])dfs(nxt);}}intmain(){cinn;for(inti1;in;i){di[i].idi;cindi[i].Cdi[i].T;}sort(di1,din1,cmp);for(inti2;in;i){di[i].ed[di[i].ed[0]]di[i-1].id;}sort(di1,din1,pmc);for(inti1;in;i){t[di[i].id]i;if(i1)continue;di[i].ed[di[i].ed[0]]di[i-1].id;}for(inti1;in;i){if(!used[i])dfs(i);ans[di[i].id]su-1;//把自己也算进去了所以要减一}for(inti1;in;i)coutans[i]endl;}后续接下来我会不断用C来实现信奥比赛中的算法题、GESP考级编程题实现、白名单赛事考题实现记录日常的编程生活、比赛心得感兴趣的请关注我后续将继续分享相关内容