zoukankan      html  css  js  c++  java
  • #Shopping HDU

    题目

    每个女孩都喜欢购物,蒲公英也喜欢。现在,由于春节临近,她发现这家商店每天都在涨价。她喜欢一家叫做“记忆”的商店。现在她想知道每天变化后这家商店的价格排名。
    输入项
    一行包含一个数字n(n <= 10000),代表商店的数量。
    然后n行,每行包含一个字符串(长度小于31,并且仅包含小写字母和大写字母。)代表商店的名称。
    然后一行包含一个数字m(1 <= m <= 50),代表天。
    然后,m个零件中,每个零件包含n行,每行包含一个数字s和一个字符串p,代表这一天,商店p的价格增加了s。
    输出量
    包含m行,在第i行第i天后打印多个商店“内存”的等级。我们将等级定义为:如果有t家商店的价格高于“内存”,则其等级为t + 1。
    

    注意 !这题巨坑,测试数据有多组,但题目没说。

    Sample Input
    3
    memory
    kfc
    wind
    2
    49 memory
    49 kfc
    48 wind
    80 kfc
    85 wind
    83 memory
    
    Sample Output
    1
    2
    

    答案

    #include<bits/stdc++.h>
    using namespace std;
    const int N=10005;
    struct node{
    	char name[35];
    	int price;
    };
    vector<node>List[N];//动态数组储存商店名字和价格; 
    unsigned int BKDRHash(char *str){
    	unsigned int seed=31,key=0;
    	while(*str)
    		key=key*seed+(*str++);
    	return key & 0x7fffffff;
    }
    int main(){
    	int n,m,key,add,memory_price,rank,len;
    	int p[N];
    	char s[35];
    	node t;
    	
    	
    	while(cin>>n){
    	
    		for(int i=0;i<N;i++)
    		List[i].clear();
    		for(int i=0;i<n;i++){
    			cin>>t.name;
    			key=BKDRHash(t.name)%N;//商店储存 
    			List[key].push_back(t);
    		}
    	
    	cin>>m;
    	while(m--){
    		rank=len=0;
    		for(int i=0;i<n;i++){
    			cin>>add>>s;
    			key=BKDRHash(s)%N;//找商店的位置 
    			for(int j=0;j<List[key].size();j++)
    				if(strcmp(List[key][j].name,s)==0){
    					List[key][j].price+=add;
    					if(strcmp(s,"memory")==0)
    						memory_price=List[key][j].price;
    					else
    						p[len++]=List[key][j].price;
    					break;
    				}
    			}
    			for(int i=0;i<len;i++)
    				if(memory_price<p[i])
    					rank++;
    			cout<<rank+1<<endl;
    
    		}
    	}
    	return 0;
    }
    
  • 相关阅读:
    python3 使用代理
    oracle 删除重复记录
    oracle语句
    python 函数split()
    CentOS 6.6 中中文输入法设置
    CentOS 6.6 中设置Terminal快捷键
    vmware-workstation-11中centos-6.6安装
    利用powerdesigner反向数据库结构,生成ER图
    [转载]oracle 11g不能导出空表的多种解决方法
    [转载]新手入门:Spring的一些学习方法及意见
  • 原文地址:https://www.cnblogs.com/yuanyulin/p/14026787.html
Copyright © 2011-2022 走看看