sad没想到自己菜成这个样子,虽然第一次打组队赛,本来也没指望出线什么的,结果3人鼓捣了半天除了两个水题,A题太水不说了,一般都是5分钟内解决,最快的好像是2分钟。。神手速orz,a题是chp敲的1A,然后他就去做了c题,后来用记录路径的bfs搜了几次都TLE了,后来c题也不了了之了,然后看到J题过了一大片,果断枚举水过,wa了5次。。在之后我敲了H题,TLE。。sad 纯暴力算法果然不行。。事后学长说是记忆化搜索?反正整个实验室都没出来H题好像。。
A题:
The Himalayas
Time Limit: 2 Seconds Memory Limit: 65536 KB
As an artist, Bob usually need to travel around the world. He made a lot of sketch of scenery on his journey. A famous spot he have visited recently is the Himalayas. The Himalayas is
a mountain range in South Asia separating the plains of the Indian subcontinent from the Qinghai-Tibet Plateau. The Himalayas include over a hundred mountains exceeding 7,200 meters in elevation.
One day, Bob came up with an strange idea. He wanted to know the number of mountain peaks in his paintings. As his best friend, he turned to you for help. You are given a list of N height
sampling values Hi. You should determine how many peaks are there. For all i which satisfies 2 <= i <= N - 1, Hi is defined as a peak if and only if Hi-1 < Hi > Hi+1.
Input
There are multiple test cases. The first line of input contains an integer T indicating the number of test cases. For each test case:
The first line contains one integer N (1 <= N <= 50). The next line contains N integers Hi (1 <= Hi <= 8844).
It is guaranteed that any two adjacent height sampling values will be different.
Output
For each test case, output the number of peaks.
Sample Input
2 9 1 3 2 4 6 3 2 3 1 5 1 2 3 4 5
Sample Output
3 0
纯暴力。。送人头的
#include <iostream> #include <cstring> #include <cstdio> #include <cctype> #include <cstdlib> #include <algorithm> #include <set> #include <vector> #include <string> #include <cmath> #include <map> #include <queue> using namespace std; #define LL long long int a[55]; int main() { int n,t; scanf("%d",&t); while(t--) { scanf("%d",&n); for(int i=0;i<n;i++) scanf("%d",&a[i]); int cnt=0; for(int i=1;i<n-1;i++) if(a[i]>a[i-1]&&a[i]>a[i+1]) cnt++; printf("%d\n",cnt); } return 0; }
J题:
Pretty Poem
Time Limit: 2 Seconds Memory Limit: 65536 KB
Poetry is a form of literature that uses aesthetic and rhythmic qualities of language. There are many famous poets in the contemporary era. It is said that a few ACM-ICPC contestants
can even write poetic code. Some poems has a strict rhyme scheme like "ABABA" or "ABABCAB". For example, "niconiconi" is composed of a rhyme scheme "ABABA" with A = "ni" and B = "co".
More technically, we call a poem pretty if it can be decomposed into one of the following rhyme scheme: "ABABA" or "ABABCAB". The symbol A, B and C are
different continuous non-empty substrings of the poem. By the way, punctuation characters should be ignored when considering the rhyme scheme.
You are given a line of poem, please determine whether it is pretty or not.
Input
There are multiple test cases. The first line of input contains an integer T indicating the number of test cases. For each test case:
There is a line of poem S (1 <= length(S) <= 50). S will only contains alphabet characters or punctuation characters.
Output
For each test case, output "Yes" if the poem is pretty, or "No" if not.
Sample Input
3 niconiconi~ pettan,pettan,tsurupettan wafuwafu
Sample Output
Yes Yes No
暴力枚举。。
#include <iostream> #include <cstring> #include <cstdio> #include <cctype> #include <cstdlib> #include <algorithm> #include <set> #include <vector> #include <string> #include <cmath> #include <map> #include <queue> using namespace std; #define LL long long char str[100]; bool is_ab() { int len=strlen(str); for(int i=1;i<len;i++)//枚举a的长度 { int lb=len-3*i; if(lb<1)break; if(lb%2)continue; lb/=2; if(lb==i&&!strncmp(str,str+i,i))//考虑a,b相同的情况 continue; char t[555]="\0"; strncat(t,str,i);//a strncat(t,str+i,lb);//b strncat(t,str,i);//a strncat(t,str+i,lb);//b strncat(t,str,i);//a if(!strcmp(str,t)) return 1; } return 0; } bool is_abc() { int len=strlen(str); for(int i=1;i<len;i++)//枚举a,b的长度 for(int j=1;j<len;j++) { int lc=len-3*i-3*j; if(lc<1) continue; if(i==j&&!strncmp(str,str+i,i))continue;//考虑a,b相同 if(i==lc&&!strncmp(str,str+2*i+2*j,i))continue;//考虑a,c相同 if(j==lc&&!strncmp(str+i,str+2*i+2*j,j))continue;//考虑b,c相同 char t[555]="\0"; strncat(t,str,i); strncat(t,str+i,j); strncat(t,str,i); strncat(t,str+i,j); strncat(t,str+2*i+2*j,lc); strncat(t,str,i); strncat(t,str+i,j); if(!strcmp(str,t)) return 1; } return 0; } int main() { int t,p;char c; cin>>t;getchar(); while(t--) { p=0; while((c=getchar())!='\n') if(isalpha(c)) str[p++]=c; str[p]='\0'; if(is_ab()||is_abc()) puts("Yes"); else puts("No"); } return 0; }