A
题意:给出一串由.*组成的字符串,如果有等间距的五个及五个以上的*存在,则输出yes
直接枚举就可以了
看题一定要仔细啊,做的时候看成必须有五个等间距的".*"才可以跳跃= =
然后就这样写居然过了预测= =后来果然被hack了

1 #include<iostream>
2 #include<cstdio>
3 #include<cstring>
4 #include <cmath>
5 #include<stack>
6 #include<vector>
7 #include<map>
8 #include<set>
9 #include<queue>
10 #include<algorithm>
11 #define mod=1e9+7;
12 using namespace std;
13
14 typedef long long LL;
15 const int INF = 0x7fffffff;
16
17 int main(){
18 char s[10005];
19 int n,i,j;
20 scanf("%d",&n);
21 scanf("%s",s);
22 for(i=0;i<n;i++){
23 for(j=1;j<n;j++){
24 if(s[i]=='*'&&s[i+j]=='*'&&s[i+2*j]=='*'&&s[i+3*j]=='*'&&s[i+4*j]=='*'){
25 printf("yes\n");
26 return 0;
27 }
28 }
29 }
30 printf("no\n");
31 return 0;
32 }
B
题意:如图所示,需要从根节点到最下面一层得叶子节点的灯的数量相等,问最少需要添加多少盏灯
因为需要每一条支路的灯的数量相等,所以从最下面一层开始处理((因为到分叉之前的灯都是共用的),不同的话加灯,相同的话继续往上一层处理


1 #include<iostream>
2 #include<cstdio>
3 #include<cstring>
4 #include <cmath>
5 #include<stack>
6 #include<vector>
7 #include<map>
8 #include<set>
9 #include<queue>
10 #include<algorithm>
11 #define mod=1e9+7;
12 using namespace std;
13
14 typedef long long LL;
15 const int INF = 0x7fffffff;
16 int a[10005];
17
18 int mi(int x){
19 int ans=1;
20 for(int i=1;i<=x;i++) ans*=2;
21 return ans;
22 }
23
24 int main(){
25 int n,i,j,ans,k;
26 cin>>n;
27 int idx=mi(n+1)-1;
28 for(i=2;i<=idx;i++) scanf("%d",&a[i]);
29
30 ans=0;
31 for(i=n;i>=1;i--){
32 for(j=mi(i);j<=mi(i+1)-1;j=j+2){
33 if(a[j]!=a[j+1]) {
34 int tmp=a[j]-a[j+1];
35 if(tmp<0) tmp=-tmp;
36 ans+=tmp;
37 // printf("ans=%d\n",ans);
38 }
39
40 int cc=max(a[j],a[j+1]);
41 a[j/2]+=cc;
42 }
43 }
44
45 printf("%d\n",ans);
46 return 0;
47 }
C
题意:给出容量c,蓝色的糖和红色的糖分别的快乐值v1,v2,分别的重量w1,w2 求最大的快乐值
做的时候想成背包,想到这么大的容量数组怎么开得下= =
后来暴力,枚举买蓝色糖的数目从1到100000000,超时
后来搜了题解= = 发下枚举到100000就可以了,另外要从0开始枚举,因为可能不吃这种糖果

1 #include<iostream>
2 #include<cstdio>
3 #include<cstring>
4 #include <cmath>
5 #include<stack>
6 #include<vector>
7 #include<map>
8 #include<set>
9 #include<queue>
10 #include<algorithm>
11 #define mod=1e9+7;
12 using namespace std;
13
14 typedef long long LL;
15 const int INF = 0x7fffffff;
16
17 int main(){
18 LL c,v1,v2,w1,w2,i;
19 cin>>c>>v1>>v2>>w1>>w2;
20 LL ans=-1;
21 for(i=0;i<=100000;i++){
22 LL y=(c-i*w1)/w2;
23 LL tmp=v2*y+i*v1;
24 if((c-i*w1)<=0) break;
25 ans=max(ans,tmp);
26 }
27
28 for( i=0;i<=1000000;i++){
29 LL y=(c-i*w2)/w1;
30 LL tmp=v2*i+v1*y;
31 if((c-i*w2)<=0) break;
32 ans=max(ans,tmp);
33 }
34 if(ans<0) printf("0\n");
35 else printf("%I64d\n",ans);
36 return 0;
37 }
这个周六先做bc被虐成狗= =做cf被虐成狗---555555
加油啊---go--go--go--go--go--go
来源:https://www.cnblogs.com/wuyuewoniu/p/4396483.html
