hdu 5311(暴力)

题意:要求在一个字符串中找出三段,然后能拼成一个固定的单词,问是否可行

BC周年庆第二题,我枚举了那个单词的切断位置,然后到给的字符串里分别找,然后就没有然后了```

 1 #include<stdio.h>
 2 #include<string.h>
 3 #include<algorithm>
 4 #include<math.h>
 5 using namespace std;
 6
 7 char s[105];
 8 char t[15]=" anniversary";
 9 int l=0;
10
11 bool check(int a,int b){
12     int pos=1,p=1;
13     int i,j;
14     bool f1=0,f2=0,f3=0;
15     for(i=1;i<=l;i++){
16         if(!f1){
17             if(s[i]==t[1]){
18                 int pos=1;
19                 bool f=1;
20                 for(pos=1;pos<=a&&f;pos++){
21                     if(s[i+pos-1]!=t[pos])f=0;
22                 }
23                 if(f){
24                     f1=1;
25                     i=i+pos-2;
26                 }
27             }
28         }
29         else if(!f2){
30             if(s[i]==t[a+1]){
31                 int pos=a+1;
32                 bool f=1;
33                 for(pos=a+1;pos<=b&&f;pos++){
34                     if(s[i+pos-a-1]!=t[pos])f=0;
35                 }
36                 if(f){
37                     f2=1;
38                     i=i+pos-a-2;
39                 }
40             }
41         }
42         else if(!f3){
43             if(s[i]==t[b+1]){
44                 int pos=b+1;
45                 bool f=1;
46                 for(pos=b+1;pos<=11&&f;pos++){
47                     if(s[i+pos-b-1]!=t[pos])f=0;
48                 }
49                 if(f)return 1;
50             }
51         }
52     }
53     return 0;
54 }
55
56 int main(){
57     int T;
58     scanf("%d",&T);
59     while(T--){
60         scanf("%s",s+1);
61         l=strlen(s+1);
62         int i,j;
63         bool f=1;
64         for(i=1;i<10&&f;i++){
65             for(j=i+1;j<=10&&f;j++){
66                 if(check(i,j)==1){
67                     f=0;
68                 }
69             }
70         }
71         if(!f)printf("YES\n");
72         else printf("NO\n");
73     }
74     return 0;
75 }

时间: 2024-10-07 07:21:33

hdu 5311(暴力)的相关文章

hdu 4876 暴力剪枝

hdu 4876 终于过了, 之前写的代码虽然思路是这样的但是有好多可以优化的地方没有注意所以一直超时超时超时!,学习了一下别人的代码,虽然看上去没什么差别但实际上却可以节省很多时间,恩恩又学到了一些技巧~     ^_^ . [题意]:给定一些卡片,每个卡片上有数字,现在选k个卡片,绕成一个环,每次可以再这个环上连续选1 - k张卡片,得到他们的异或和的数,给定一个L,问能组成[L,R]所有数字的情况下,R的最大值是多少. [思路]:暴力+剪枝  枚举在m个数里选k个数的 C(m,k)种情况,

HDU 5311 Hidden String (优美的暴力)

Hidden String Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others) Total Submission(s): 52    Accepted Submission(s): 25 Problem Description Today is the 1st anniversary of BestCoder. Soda, the contest manager, gets a

HDU 5311 Hidden String (暴力)

题意:今天是BestCoder一周年纪念日. 比赛管理员Soda有一个长度为n的字符串s. 他想要知道能否找到s的三个互不相交的子串s[l1..r1], s[l2..r2], s[l3..r3]满足下列条件: 1. 1≤l1≤r1<l2≤r2<l3≤r3≤n 2. s[l1..r1], s[l2..r2], s[l3..r3]依次连接之后得到字符串"anniversary". 思路:其实就是要在一个串中找可能存在的3个连续子串来构成这个"anniversary&q

hdu 5311 Hidden String (BestCoder 1st Anniversary ($))(深搜)

http://acm.hdu.edu.cn/showproblem.php?pid=5311 Hidden String Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others)Total Submission(s): 1499    Accepted Submission(s): 534 Problem Description Today is the 1st anniversar

HDU 5386 暴力

给出初始矩阵和目标矩阵,存在m中操作,可以分别把每行或者每列都涂成同一种颜色,数据保证有解 因为保证有解,所以初始矩阵完全没有用... 暴力寻找M次操作,若目标矩阵的行或列全和该操作的颜色一样,则最后进行此操作,并把所有涂的点涂为颜色0(可当任意颜色) 然后同样依次推出之前的操作,因为之后的操作会覆盖掉之前操作的点. #include "stdio.h" #include "string.h" struct Mark { int x,y; char op; }mar

hdu 5254(暴力)

题解:暴力所有点,直到不存在可以0变1的点. #include <stdio.h> #include <string.h> const int N = 505; int n, m, k, g[N][N], temp[N][N], vis[N][N]; bool judge(int x, int y) { if (x - 1 >= 0 && y - 1 >= 0) { if (temp[x - 1][y] && temp[x][y - 1]

(BC 一周年)hdu 5311 Hidden String

Hidden String Accepts: 437 Submissions: 2174 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others) 问题描述 今天是BestCoder一周年纪念日. 比赛管理员Soda有一个长度为nn的字符串ss. 他想要知道能否找到ss的三个互不相交的子串s[l_1..r_1]s[l?1??..r?1??], s[l_2..r_2]s[l?2??..r?2

hdu 5311 Hidden String dp o(n)算法 深搜

Hidden String Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others) Total Submission(s): 857    Accepted Submission(s): 322 Problem Description Today is the 1st anniversary of BestCoder. Soda, the contest manager, gets

hdu 2616 暴力使用 dfs求最短路径(剪枝有点依稀)

Kill the monster Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 1241    Accepted Submission(s): 846 Problem Description There is a mountain near yifenfei’s hometown. On the mountain lived a big