设为首页 加入收藏

TOP

Codeforces Round #306 (Div. 2)(一)
2015-11-21 00:59:51 来源: 作者: 【 】 浏览:8
Tags:Codeforces Round #306 Div.

最近是怎么了,老是掉分,sad = =.......

明明都会做,但一到比赛时,就没有想法了。。。估计是太困了吧。。。

?

A. Two Substrings time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output

You are given string s. Your task is to determine if the given string s contains two non-overlapping substrings "AB" and "BA" (the substrings can go in any order).

Input

The only line of input contains a string s of length between 1 and 105 consisting of uppercase Latin letters.

Output

Print "YES" (without the quotes), if string s contains two non-overlapping substrings "AB" and "BA", and "NO" otherwise.

Sample test(s) input
ABA
output
NO
input
BACFAB
output
YES
input
AXBYBXA
output
NO
Note

In the first sample test, despite the fact that there are substrings "AB" and "BA", their occurrences overlap, so the answer is "NO".

In the second sample test there are the following occurrences of the substrings: BACFAB.

In the third sample test there is no substring "AB" nor substring "BA".


?

这道题我看了好久,原因呢?我不知道它说的题目意思是两个字符串“AB"和”BA"就可以了,还是要分别都要两个,事后想想,这个愚蠢的问题。。。然后回过头看,wa~,完了,又要掉分了。。。

想法呢:

就是for4遍,首先第一遍是为了先找出AB有没有,然后for第二遍找出BA,记得把AB所在的位置要标记上;

然后如果上面找到两种字符串的话,那么就不用进行下面的语句了,但是没有找到,那么就要for先找出BA,然后就再去找AB,大致与上面找的方法相同。

?

#include
  
   
#include
   
     #include
    
      #include
     
       #include
       using namespace std; #define maxn 111111 map
       
         mp; char a[maxn]; int mp1[maxn],mp2[maxn]; int main(){ scanf("%s",a); int len=strlen(a); int i,j,k,l; bool f1,f2; f1=f2=false; for(i=0;i
        
         

?

B. Preparing Olympiad time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output

You have n problems. You have estimated the difficulty of the i-th one as integer ci. Now you want to prepare a problemset for a contest, using some of the problems you've made.

A problemset for the contest must consist of at least two problems. You think that the total difficulty of the problems of the contest must be at least l and at most r. Also, you think that the difference between difficulties of the easiest and the hardest of the chosen problems must be at least x.

Find the number of ways to choose a problemset for the contest.

Input

The first line contains four integers n, l, r, x (1?≤?n?≤?15, 1?≤?l?≤?r?≤?109, 1?≤?x?≤?106) — the number of problems you have, the minimum and maximum value of total difficulty of the problemset and the minimum difference in difficulty between the hardest problem in the pack and the easiest one, respectively.

The second line contains n integers c1,?c2,?...,?cn (1?≤?ci?≤?106) — the difficulty of each problem.

Output

Print the number of ways to choose a suitable problemset for the contest.

Sample test(s) input
3 5 6 1
1 2 3
output
2
input
4 40 50 10
10 20 30 25
output
2
input
5 25 35 10
10 10 20 10 20
output
6
Note

In the first example two sets are suitable, one consisting of the second and third problem, another one consisting of all three problems.

In the second example, two sets of problems are suitable — the set of problems with difficulties 10 and 30 as well as the set of problems with difficulties 20 and 30.

In the third example any set consisting of one problem of difficulty 10 and one problem of difficulty 20 is suitable.


?

这道题我一开始没有想出来,后来看别人的想法做的,就是一个dfs。

题意就是给你限定了一个范围区间[l,r]; 然后你可以选n门课中的任意门然后要使它们的难度系数之和在这个区间范围内,然后在你所选的课中找出最大值max,最小值min,然后它们两个的差值要大于等于x才行,然后问你总共有几种选课的方法。

?

#include
          
           
#include
           
             #include
            
              #include
             
               using namespace std; #define maxn 22 #define in
首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇POJ 1325 Machine Schedule (二分.. 下一篇Codeforces 550D. Regular Bridge..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: