• #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;
    }
    
  • 相关阅读:
    开源 Serverless 里程碑:Knative 1.0 来了
    以一致的体验交付和管理云原生多集群应用
    iLogtail使用入门K8S环境日志采集到SLS
    如何在golang代码里面解析容器镜像
    mac vmware 无法复制粘贴
    使用vi编辑时上下左右方向键被转化为A、B、C、D
    left join 和 left outer join 的区别
    设计模式之 适配器模式
    设计模式之 命令模式
    设计模式学习之 策略模式
  • 原文地址:https://www.cnblogs.com/yuanyulin/p/14026787.html
Copyright © 2020-2023  润新知