UVALive 7077 - Song Jiang's rank list(模拟)
题目大意:给n个人以及每个人的名字s和他能杀死的敌人数m,将这些人按能杀死的敌人数进行排名并输出,m次查询,每次查询输出这个人的两个排名,
一个是他在他排名之前(他不能杀死,注:他不能杀死与他杀死敌人数相等的人)的人数 + 1, 一个是他排名之前与他杀死敌人数相等的人数 + 1
#include<stdio.h>
#include<string.h>
#include<math.h>
#include<stdlib.h>
#include<algorithm> using namespace std; const int N = ; struct st
{
int m, add, same, f;
char s[];
} node[N], a[N]; int cmp(const void *a, const void *b)
{
st *s1 = (st *)a , *s2 = (st *)b;
if(s1->m != s2->m)
return s2->m - s1->m;
else
return strcmp(s1->s, s2->s);
//按字典序排列
} int main()
{
int n, i, j, m;
while(scanf("%d", &n), n)
{
for(i = ; i < n ; i++)
{
scanf("%s%d", node[i].s, &node[i].m);
node[i].same = node[i].f = ;
}
qsort(node, n, sizeof(node[]), cmp);
scanf("%d", &m);
for(i = ; i <= m ; i++)
{
scanf("%s", a[i].s);
for(j = ; j < n ; j++)
{
if(strcmp(a[i].s, node[j].s) == )
a[i].add = j;
}
}//a[i].add就是第i个人的排名,排名从第0名开始
for(i = ; i < n - ; i++)
{
for(j = i + ; j < n ; j++)
{
if(node[i].m == node[j].m)
node[j].same++;
}
}//统计他排名之前与他杀死敌人数相等的人数
for(i = ; i < n ; i++)
printf("%s %d\n", node[i].s, node[i].m);
for(i = ; i <= m ; i++)
{
if(node[a[i].add].same >= )
printf("%d %d\n", a[i].add - node[a[i].add].same + , node[a[i].add].same + );
else
printf("%d\n", a[i].add - node[a[i].add].same + );
}
}
return ;
}
UVALive 7077 - Song Jiang's rank list(模拟)的更多相关文章
- Song Jiang's rank list
Song Jiang's rank list Time Limit:1000MS Memory Limit:512000KB 64bit IO Format:%I64d & ...
- hdu 5131 Song Jiang's rank list
题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=5131 Song Jiang's rank list Description <Shui Hu Z ...
- 2014ACM/ICPC亚洲区广州站 Song Jiang's rank list
欢迎参加——每周六晚的BestCoder(有米!) Song Jiang's rank list Time Limit: 2000/1000 MS (Java/Others) Memory Li ...
- HDU5131-Song Jiang's rank list HDU5135-Little Zu Chongzhi's Triangles(大佬写的)
Song Jiang's rank list Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 512000/512000 K (Java ...
- HDU 5131.Song Jiang's rank list (2014ACM/ICPC亚洲区广州站-重现赛)
Song Jiang's rank list Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 512000/512000 K (Java ...
- UVALive 6093 Emergency Room --优先队列实现的模拟
题意:给n个医生,这些医生有一个上班时间,然后给一些病人,病人有一个到达的时间,以及一些诊断,诊断有property(优先级)和duration(诊断时间)这两个属性,每个病人可能要诊断多次,最后问每 ...
- UVALive 5888 Stack Machine Executor (栈+模拟)
Stack Machine Executor 题目链接: http://acm.hust.edu.cn/vjudge/problem/26636 Description http://7xjob4.c ...
- UVALive 3486/zoj 2615 Cells(栈模拟dfs)
这道题在LA是挂掉了,不过还好,zoj上也有这道题. 题意:好大一颗树,询问父子关系..考虑最坏的情况,30w层,2000w个点,询问100w次,貌似连dfs一遍都会TLE. 安心啦,这肯定是一道正常 ...
- UVALive 2323 Modular Multiplication of Polynomials(模拟)
这是一个相对简单的模拟,因为运算规则已经告诉了我们,并且比较简单,不要被吓到…… 思路:多项式除以另外一个多项式,如果能除,那么他的最高次一定被降低了,如果最高次不能被降低,那说明已经无法被除,就是题 ...
随机推荐
- MVC 中使用扩展方法
扩展方法(Extension Method)是给那些不是你拥有.因而不能直接修改的类添加方法的一种方便的办法. 一.使用扩展方法 1.定义一个购物车的类-ShoppingCart using Sys ...
- UVa 10891 (博弈+DP) Game of Sum
最开始的时候思路就想错了,就不说错误的思路了. 因为这n个数的总和是一定的,所以在取数的时候不是让自己尽可能拿的最多,而是让对方尽量取得最少. 记忆化搜索(时间复杂度O(n3)): d(i, j)表示 ...
- find命令下的atime,ctime,mtime
Linux下的find命令在目录结构中搜索文件,并执行指定的操作.linux下的find命令提供了相当多的查找条件,功能很强大,由于find的功能很强大,所以他的选项也很多,今天我们来细说一下find ...
- (转)UILabel的详细使用
UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 75, 40)]; //初始化UIlbel并设定frame lab ...
- python执行mysqldump命令
本文简单讲述如何利用python执行一些sql语句,例如执行mysqldump命令,进行数据库备份,备份成sql文件 #!/usr/bin/python#导入os模块import os#导入时间模块i ...
- BZOJ 2151 种树
贪心+priority_queue. #include<iostream> #include<cstdio> #include<cstring> #include& ...
- java金额的加减乘除
package com.wedge.edp.framework.common.util; import java.math.BigDecimal; /** * 金额的加减乘除 */ public cl ...
- Windows下配置cygwin和ndk编译环境
cygwin安装 正确的安装步骤其实很简单:1. 下载setup-86_64.exe 2. 直接从网上下载安装,选择包时,顶部选择“default”不变 3. 搜索make,勾选make,cmake, ...
- OpenLayers调用ArcGIS Server发布的WFS服务
OpenLayers调用ArcGIS Server发布的WFS服务 原创: 蔡建良 2013-08-20 一. 开发环境 1) Openlayers2.13+arcgis server9.3 2) W ...
- js中判断是不是数字
使用isaNa来进行判断,这个函数的底层实现是:Nunmber,如果经过转化是数字则返回false,否则返回true Number('100px')返回的是ANA,parseInt('100px')返 ...