码迷,mamicode.com
首页 > 其他好文 > 详细

Codeforces Round #306 (Div. 2)

时间:2015-06-06 23:25:23      阅读:175      评论:0      收藏:0      [点我收藏+]

标签:

Two Substrings

题意:问是否存在不重叠的串AB和BA。

思路:注意ABABA、BABAB这两种情况都应该是YES。所以可以找第一个AB,最后一个BA,如果两者不重叠(即两者不是ABA和BAB这样)可以确保一定是YES,同样如果找第一个BA和最后一个AB可以不重叠一样也是YES。

在python中,str的方法s1.find(s2)可以从字符串s1查找s2第一次出现的位置,找不到则返回-1。rfind()是查找最后一次出现位置。

s=raw_input()
x1,y1=s.find("AB"),s.rfind("BA")
x2,y2=s.find("BA"),s.rfind("AB")
if(x1!=-1 and y1!=-1 and x1+1!=y1 and y1+1!=x1 ) or (x2!=-1 and y2!=-1 and x2+1!=y2 and y2+1!=x2):
    print YES
else:
    print NO

 

 Preparing Olympiad

题意:给一些数字,问有多少子集满足它们的和值位于l和r之间,且最大值与最小值的差超过x。

思路:枚举子集判断即可。

在python中,list(itertools.combinations(a,i))表示在a中枚举长度为i的所有子集。

import itertools
n,l,r,x=[int(i) for i in raw_input().split()]
a=[int(i) for i in raw_input().split()]
ans=0
for i in range(1,n+1):
        sub=list(itertools.combinations(a,i))
        for j in sub:
                s,d=sum(j),max(j)-min(j)
                if l<=s and s<=r and d>=x:
                        ans+=1
print ans

 

  

Codeforces Round #306 (Div. 2)

标签:

原文地址:http://www.cnblogs.com/rockzh/p/4556230.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!