zoukankan      html  css  js  c++  java
  • 1024

    点击打开链接

    问题 E: QAQ & 君临天下 || 天行九歌

    时间限制: 1 Sec 内存限制: 128 MB

    提交: 730 解决: 222

    题目描述

    QAQ~生活之余喜欢看一些动漫,说到国产动漫,QAQ 最喜欢的就属玄机了,玄机出品的动漫都很赞的说,君临天下 和 天行九歌是 QAQ 最喜欢的两部动漫了,每次看完 QAQ 对玄机的敬佩值都会分别增加 2 与 1,QAQ 记录了自己每天看的动漫名称 由 A ~ Z 26个字母代替,J:代表 君临天下,T 代表 : 天行九歌。

    有一天,ORZ 突发奇想想帮 QAQ 测试一下 L ~ R 天里 QAQ 对玄机的敬佩值增加了多少,看 QAQ 能否清楚记得?

    问题来了 ORZ 怎么知道 QAQ 回答的对错呢 ?所以 ORZ 想请你帮忙算出 L ~ R 天里 QAQ 对玄机的敬佩值增加的正确答案。

    输入

    第一行一个 T ( 1T101≤T≤10)代表有 T 组测试数据

    第二行两个数 n ,m (1n,m1051≤n,m≤105),分别代表看了 n 天动漫,和 m 次查询

    接下来 n 行一个 A ~ Z 的字母,表示第 i 天看的动漫名称

    接下来 m 行,每行两个数 L,R (1LRn1≤L≤R≤n)

    输出

    对于每次查询,输出 L~R 天里,QAQ对玄机的敬佩值增加了多少

    样例输入

    1
    3 3
    J
    A
    T
    1 1
    1 2
    2 3
    

    样例输出

    2
    2
    1

    AC代码

    59915 test 1412 正确 Language : C++ Time : 512 Memory : 876 公开
    #include<cstdio>
    #include<cmath>
    #include<cstring>
    #include<algorithm>
    using namespace std;
    const int MAX = 1e5 + 10;
    typedef long long LL;
    LL sum[MAX];
    int main()
    {
        int T,n,m;
        scanf("%d",&T);
        while(T--){
            scanf("%d %d",&n,&m);
            LL ans = 0;
            char a[2];
            for(int i = 1; i <= n; i++){
                scanf("%s",a);
                if(a[0] == 'T') ans += 1;		//注意这里是字符串
                else if(a[0] == 'J') ans += 2;
                sum[i] = ans;
            }
            while(m--){
                int l,r;
                scanf("%d %d",&l,&r);
                printf("%lld
    ",sum[r] - sum[l - 1]);
            }
        }
        return 0;
    }
    /**************************************************************
    	Problem: 1412
    	User: test
    	Language: C++
    	Result: 正确
    	Time:512 ms
    	Memory:876 kb
    ****************************************************************/
    
    我的代码(运行错误)
    #include<stdio.h>
    #include<string.h>
    int main()
    {
    	int n;
    	scanf("%d",&n);
    	while(n--)
    	{
    		int val=0;
    		char aa[100005];
    		int bb[100005];
    		memset(bb,0,sizeof(bb));
    		
    		int a,b;
    		scanf("%d%d",&a,&b);
    		for(int i=1; i<=a; i++)
    		{
    			scanf("%c",&aa[i]);	
    			getchar();			//注意getchar的作用
    			if(aa[i]=='J')
    			bb[i]=2;
    			if(aa[i]=='T')
    			bb[i]=1;			
    		}
    		for(int j=0; j<b; j++)
    		{
    			int x,y;
    			scanf("%d%d",&x,&y);
    			for(int k=x; k<=y; k++)
    			{
    				val+=bb[k];
    			}
    		}
    		printf("%d
    ",val);
    	}
    	
    	return 0;
    }
    
    

    永远渴望,大智若愚(stay hungry, stay foolish)
  • 相关阅读:
    线程状态转换
    CyclicBarrier和CountDownLatch区别
    MySQL事务原理
    DownLoadManager[20530:228829] DiskImageCache: Could not resolve the absolute path of the old directory.
    App各种Icon及Launch image的尺寸和用途
    关于iPhone开发的一些建议
    iPhone6/6Plus下app状态栏内容放大问题处理
    PDF转jpg
    ios开发学习笔记
    nil和Nil和NULL的判断
  • 原文地址:https://www.cnblogs.com/h-hkai/p/7406504.html
Copyright © 2011-2022 走看看