zoukankan      html  css  js  c++  java
  • HDU2171_输入处理_点名字

    题目大意: 给你一组人名,然后指定从哪个人名开始计数,注意人名是围城一个圈的。然后要求打印出点到名字的人的名字。 解题思路: 用map存放人名,(用两个map逆着存,这样方便取,方便转换)。之后靠模数的方式来取数。模的时候处理了半个小时。困了,脑筋转不动了。 代码:
    #include
    #include
    #include
    using namespace std;
    const int MAX = 1005;
    int main(void)
    {
    	int cas;
    	scanf("%d", &cas);
    	while(cas--)
    	{
    		getchar();
    		char str[MAX];
    		gets(str);
    
    		int len = strlen(str);
    		string nameStr = "";
    		int nameNum = 0;
    		map name1;
    		map nameF;
    
    		for(int i = 0; i <= len; i++)
    		{
    			if(str[i] != ' ' && str[i] != '\0')
    				nameStr += str[i];
    			else
    			{
    				name1[nameStr] = ++nameNum;
    				nameF[nameNum] = nameStr;
    				nameStr = "";
    			}
    		}
    
    		gets(str);
    		int n;
    		scanf("%d", &n);
    		int temp = n % nameNum;
    		int ans;
    		for(int i = 1; i < nameNum; i++)
    		{
    			nameF[i+nameNum] = nameF[i];
    		}
    		if(temp == 0)
    		{
    			if(name1[str] == 1)
    				ans = nameNum;
    			else
    				ans = name1[str] - 1;
    		}
    		else
    		{
    			ans = name1[str] + temp - 1;
    		}
    		cout<
  • 相关阅读:
    路径问题
    移动端推荐使用
    js获取各种宽高方法
    html 符号大全
    bzoj4923 K小值查询
    bzoj3781 小B的询问
    bzoj1799 [Ahoi2009]self 同类分布
    bzoj2005 [Noi2010]能量采集
    bzoj4039 集会
    bzoj2516 电梯
  • 原文地址:https://www.cnblogs.com/cchun/p/2520213.html
Copyright © 2011-2022 走看看