ホームページ >ウェブフロントエンド >htmlチュートリアル >BestCoder ラウンド #11 (ディビジョン 2) 最初の 3 つの質問に対する解決策_html/css_WEB-ITnose

BestCoder ラウンド #11 (ディビジョン 2) 最初の 3 つの質問に対する解決策_html/css_WEB-ITnose

WBOY
WBOYオリジナル
2016-06-24 11:56:541169ブラウズ

题目链接:

huangjing

hdu5054 Alice and Bob

思路:

就是(x,y) 2 つの参照系での表示出演完全一样。四角形の中点。

题目:

アリスとボブ 制限時間: 2000/1000 MS (Java/その他) メモリ制限: 32768/32768 K (Java/その他)
合計提出物: 216 承認された提出物: 166


問題の説明

ボブとアリスは広場で離ればなれになってしまいました。もし離ればなれになったら座標点 (x, y) で合流することに彼らは同意しました。残念ながら、座標の原点と座標軸の方向を定義するのを忘れていました。さて、ボブは広場の左下隅におり、アリスは広場の右上隅にいます。ボブは、左下隅を座標の原点とみなし、X 軸の正の方向は右方向、Y 軸の正の方向は上方向とします。アリスは、右上隅を座標の原点、X 軸の正の方向は左方向、下方向とみなします。 Y 軸の正の方向。正方形が長方形であると仮定すると、長さと幅のサイズは N * M です。図に示すように:

ボブとアリスはそれぞれ独自の座標系の定義を持ち、座標点 (x 、y)。彼らは会うことができますか? 
注: ボブとアリスは、目的地に到着する前に、いくつかの要因 (建物、時間不足など) によりお互いを見ることができません。


入力

テストケースは複数あります。 EOFまで処理してください。各テスト ケースには、N、M、x、y の 4 つの整数のみが含まれます。正方形のサイズは N * M で、座標点 (x, y) で交わります。 (0


出力

会えたら「YES」を出力してください。それ以外の場合は「NO」を出力してください。


サンプル入力

                  <p class="sycode">                      10 10 5 510 10 6 6                  </p>


サンプル出力

                  <p class="sycode">                      YESNO                  </p>


ソース

BestCoder ラウンド #11 (ディビジョン 2)


おすすめ

heyang |   私たちはあなたのためにいくつかの類似した問題を慎重に選択しました: 5057 5052 5051 5050 5049


代:

#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<map>#include<vector>#include<cmath>#include<string>#include<queue>#define eps 1e-9#define ll long long#define INF 0x3f3f3f3fusing namespace std;int  main(){    int x,y,n,m;    while(scanf("%d%d%d%d",&n,&m,&x,&y)!=EOF)    {        if(2*x==n&&2*y==m)            printf("YES\n");        else            printf("NO\n");    }  }

hdu 5055 ボブと数学の問題

题意:

就是给出n個の数字、その後要你找一個

(1)この数は奇数です。

(2)この数は最大の数です。

(3)また、すべての数字が使用される点が 1 つあります。

思路:

思慮深い行動、最初にすべての位が基数が存在するかどうか、基数がすべて見られた場合そうでない場合は、そのような数が存在しないことを認め、存在する場合は、各位の最小の基数を求め、次にすべての位を順番に並べ、その後、低位から高位に向かって、最後にこの数を取得します。次に判断すると、先頭が 0 の場合、すべての位を出力する必要があるため、この数は存在しません。 32768/32768 K (Java/その他)

総提出数: 643 承認された提出数: 245


問題の説明

Recently, Bob has been thinking about a math problem.
There are N Digits, each digit is between 0 and 9. You need to use this N Digits to constitute an Integer.
This Integer needs to satisfy the following conditions:

  • 1. must be an odd Integer.
  • 2. there is no leading zero.
  • 3. find the biggest one which is satisfied 1, 2.

  • Example: 
    There are three Digits: 0, 1, 3. It can constitute six number of Integers. Only "301", "103" is legal, while "130", "310", "013", "031" is illegal. The biggest one of odd Integer is "301".

     


    Input

    There are multiple test cases. Please process till EOF.
    Each case starts with a line containing an integer N ( 1 <= N <= 100 ).
    The second line contains N Digits _1, a_2, a_3, \cdots, a_n. ( 0 \leqwhich indicate the digit $a  a_i \leq 9)$.

     


    Output

    The output of each test case of a line. If you can constitute an Integer which is satisfied above conditions, please output the biggest one. Otherwise, output "-1" instead.

     


    Sample Input

                      <p class="sycode">                      30 1 335 4 232 4 6                  </p>

     


    Sample Output

                      <p class="sycode">                      301425-1                  </p>

     


    Source

    BestCoder Round #11 (Div. 2)

     


    Recommend

    heyang   |   We have carefully selected several similar problems for you:   5057  5052  5051  5050  5049 

     

    代码:

    #include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<map>#include<vector>#include<cmath>#include<string>#include<queue>#define eps 1e-9#define ll long long#define INF 0x3f3f3f3fusing namespace std;const int maxn=100+10;int a[maxn],odd[maxn];char str[maxn];int n;int  main(){    int ans,pd;    while(scanf("%d",&n)!=EOF)    {        memset(str,0,sizeof(str));        int cnt=0,first=0;        for(int i=1;i<=n;i++)        {            scanf("%d",&a[i]);            if(a[i]%2)               odd[++cnt]=a[i];        }        sort(odd+1,odd+1+cnt);        sort(a+1,a+1+n);        int ly=n-1;        if(cnt==0)            puts("-1");        else        {            str[ly]=odd[1]+'0';            ly--;            for(int i=1;i<=n;i++)            {                if(a[i]==odd[1]&&!first)                {                    first=1;                    continue;                }                else                {                    str[ly]=a[i]+'0';                    ly--;                }            }            if(str[0]=='0')                puts("-1");            else                {                    for(int i=0;i<=n-1;i++)                        printf("%c",str[i]);                    printf("\n");                }        }    }    return 0;}


    hdu 5056 Boring count

    题意:

    给出一个字符串,然后求出它所有的子串中每个字母的数目不超过k个的所有的子串的数目。。

    思路:

    枚举每一个字符,然后以每个字符i为子串末尾,然后得到的满足条件的子串的最长长度。。就算字母相同,只要位置不相同就算不同的。。2333333333,那么思路就是维护一个起点st,每当第i个字符的数目大于k后 ,那么就将st后移,同时将当前的每个cnt[i]减减,直到移动到与i相同的字符你,那么从st到i这段字符就满足条件了。。。觉得这个思路真是神奇。。。。

    题目;

    Boring count Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
    Total Submission(s): 451    Accepted Submission(s): 169


    Problem Description

    You are given a string S consisting of lowercase letters, and your task is counting the number of substring that the number of each lowercase letter in the substring is no more than K.

     


    Input

    In the first line there is an integer T , indicates the number of test cases.
    For each case, the first line contains a string which only consist of lowercase letters. The second line contains an integer K.

    [Technical Specification]
    1<=T<= 100
    1 <= the length of S <= 100000
    1 <= K <= 100000

     


    Output

    For each case, output a line contains the answer.

     


    Sample Input

                      <p class="sycode">                      3abc1abcabc1abcabc2                  </p>

     


    Sample Output

                      <p class="sycode">                      61521                  </p>

     


    Source

    BestCoder Round #11 (Div. 2)

     


    Recommend

    heyang   |   We have carefully selected several similar problems for you:   5057  5052  5051  5050  5049 

    代码:

    #include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<map>#include<vector>#include<cmath>#include<string>#include<queue>#define eps 1e-9#define ll long long#define INF 0x3f3f3f3fusing namespace std;const  int maxn=100000+10;char str[maxn];int cnt[28];int main(){    ll ans;    int t,st,k,ly;    scanf("%d",&t);    while(t--)    {        memset(cnt,0,sizeof(cnt));        st=ans=0;        scanf("%s%d",str,&k);        for(int i=0;str[i]!='\0';i++)        {           ly=str[i]-'a';           cnt[ly]++;           if(cnt[ly]>k)           {              while(str[st]!=str[i])              {                 cnt[str[st]-'a']--;                 st++;              }               cnt[ly]--;               st++;           }           ans+=i-st+1;        }        printf("%I64d\n",ans);    }    return 0;}



    声明:
    この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。