zoukankan      html  css  js  c++  java
  • UESTC--1269--ZhangYu Speech(模拟)

    Time Limit: 1000MS   Memory Limit: 65535KB   64bit IO Format: %lld & %llu

    Status

    Description

    as we all know, ZhangYu(Octopus vulgaris) brother has a very famous speech - “Keep some distance from me”.
    ZhangYu brother is so rich that everyone want to contact he, and scfkcf is one of them.
    One day , ZhangYu brother agreed with scfkcf to contact him if scfkcf could beat him.
    There are $n$ digits(lets give them indices from $1$ to $n$ and name them $a_1, a_2 … a_N$) and some queries.

    for each query:

    1. ZhangYu brother choose an index $x$ from $1$ to $n$.
    2. For all indices $y$ ( $y$ < $x$) calculate the difference $b_y = a_x - a_y$.
    3. Then ZhangYu brother calculate $B_1$ ,the sum of all by which are greater than $0$ , and scfkcf calculate $B_2$ , the sum of all by which are less than $0$.

    if $B_1 > |B_2|$ , ZhangYu brother won and did not agree with scfkcf to contact him;
    else if $B_1$ is equals to $|B_2|$ , ZhangYu brother would ignore the result;
    else if $B_1$ < $|B_2|$ , ZhangYu brother lost and agreed with scfkcf to contact him.

    Input

    The first line contains two integers $n$, $m$ $(1 le n,m le 100000)$ denoting the number of digits and number of queries. The second line contains $n$ digits (without spaces) $a_1, a_2, …, a_n$.$(0 le a_i le 9)$
    Each of next $m$ lines contains single integer $x$ $(1 le x le n)$ denoting the index for current query.

    Output

    For each of $m$ queries print “Keep some distance from me” if ZhangYu won, else print “Next time” if ZhangYu brother ignored the result, else print “I agree” if ZhangYu brother lost in a line - answer of the query.

    Sample Input

    10 3
    0324152397
    1
    4
    7

    Sample Output

    Next time
    Keep some distance from me
    I agree

    Hint

    It's better to use “scanf” instead of “cin” in your code.

    Source

    第七届ACM趣味程序设计竞赛第四场(正式赛)

    每次统计x前边的0--9个数,然后输入x之后直接调用,要不然会超时

    #include<string.h>
    #include<stdlib.h>
    #include<math.h>
    #include<iostream>
    #include<algorithm>
    using namespace std;
    #define MAXN 1010
    #define MAXM 100010
    #define INF 0x3f3f3f
    int num[MAXM];
    char s[MAXM];
    int p[20],sum[MAXM*10];
    struct node
    {
    	int p[20];
    }d[MAXM*10];
    int main()
    {
    	int n,t;
    	while(scanf("%d%d
    ",&n,&t)!=EOF)
    	{
    		scanf("%s",s+1);
    		memset(sum,0,sizeof(sum));
    		for(int i=1;i<=n;i++)
    		{
    			num[i]=s[i]-'0';
    			for(int j=0;j<=9;j++)
    			d[i].p[j]=d[i-1].p[j];
    			d[i].p[num[i]]=d[i-1].p[num[i]]+1;
    		}
    		while(t--)
    		{
    			int x;
    			scanf("%d",&x);
    			int b1,b2;
    			b1=b2=0;
    //			if(num[x]==0)
    //			printf("Next time
    ");
    //			else
    //			{
    				for(int i=0;i<=9;i++)
    				{
    					if(d[x-1].p[i])
    					{
    						if(num[x]-i>0)
    						b1+=(num[x]-i)*d[x-1].p[i];
    						else
    						b2+=(num[x]-i)*d[x-1].p[i];
    					}
    				}
    				if(b1>fabs(b2))
    				printf("Keep some distance from me
    ");
    				else if(b1==fabs(b2))
    				printf("Next time
    ");
    				else printf("I agree
    ");
    //			}
    		}
    	}
    	return 0;
    }


  • 相关阅读:
    MySQL视图更新
    JavaScript经典作用域问题
    进程间通信的几种方式
    Vue(MVVM)、React(MVVM)、Angular(MVC)对比
    CDN(Content Delivery Network)技术原理概要
    单点登录实现原理(SSO)
    composer 实现自动加载原理
    PHP 反射的简单使用
    php7安装php-redis扩展
    Git 简单入门(二)
  • 原文地址:https://www.cnblogs.com/playboy307/p/5273508.html
Copyright © 2011-2022 走看看