ZeptoLab Code Rush 2015

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

时间: 2024-10-12 20:43:01

ZeptoLab Code Rush 2015的相关文章

ZeptoLab Code Rush 2015 A. King of Thieves 暴力

A. King of Thieves Time Limit: 1 Sec  Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/526/problem/A Description In this problem you will meet the simplified model of game King of Thieves. In a new ZeptoLab game called "King of Thieves" y

Codeforces ZeptoLab Code Rush 2015

比赛链接:http://codeforces.com/contest/526/ A. King of Thieves time limit per test:1 second memory limit per test:256 megabytes In this problem you will meet the simplified model of game King of Thieves. In a new ZeptoLab game called "King of Thieves&quo

【codeforces ZeptoLab Code Rush 2015】ABCD题解

A. King of Thieves time limit per test1 second memory limit per test256 megabytes inputstandard input outputstandard output In this problem you will meet the simplified model of game King of Thieves. In a new ZeptoLab game called "King of Thieves&quo

ZeptoLab Code Rush 2015 B. Om Nom and Dark Park DFS

B. Om Nom and Dark Park Time Limit: 1 Sec  Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/526/problem/B Description Om Nom is the main character of a game "Cut the Rope". He is a bright little monster who likes visiting friends living a

ZeptoLab Code Rush 2015 C. Om Nom and Candies 暴力

C. Om Nom and Candies Time Limit: 1 Sec  Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/526/problem/C Description A sweet little monster Om Nom loves candies very much. One day he found himself in a rather tricky situation that required him

ZeptoLab Code Rush 2015 A. King of Thieves

题目大意: 就是说,对于一个起点,使得从这个起点开始,每次间隔相同的格子后,所经过的地方都是‘*’ 解题思路: 直接暴力,枚举起点+枚举公差 代码: 1 # include<cstdio> 2 # include<iostream> 3 4 using namespace std; 5 6 # define MAX 123 7 8 char s[MAX]; 9 int a[MAX]; 10 11 int main(void) 12 { 13 int n; 14 scanf(&quo

ZeptoLab Code Rush 2015 B. Om Nom and Dark Park

1.题目描述:点击打开链接 2.解题思路:比赛时候这道题没有做出来,第二天早晨补题时才发现就是简单的DFS应用.题目要求出最少需要增加几盏路灯.假设我们已经知道了root的左子结点一共有suml盏路灯,右子结点一共有sumr盏路灯,那么比较一下d[lson(root)]+suml和d[rson(root)]+sumr的大小即可.此时需要增加的路灯数量就是两者差的绝对值.同时返回较大的数即得到root的总路灯数量. 3.代码: #define _CRT_SECURE_NO_WARNINGS #in

ZeptoLab Code Rush 2015 C. Om Nom and Candies

1.题目描述:点击打开链接 2.解题思路:本题是无限背包问题,根据重量的约束关系,直接暴力搜索. 3.代码: #define _CRT_SECURE_NO_WARNINGS #include<iostream> #include<algorithm> #include<string> #include<sstream> #include<set> #include<vector> #include<stack> #incl

【codeforces】ZeptoLab Code Rush 2015 E 跳跃表?

题意就是给n个数,围成一圈,就是1和n是相邻的,然后给一个数b,总和不超过b的一段连续的数可以组成一组,问最少可以将n个数分成几组. 可以将n个数后面再接n个数,就变成n+n个数,然后以每个数为开头的组最远能到哪也是很容易求的,O(n)维护个指针可以处理.把远的位置视为跳一步能到的吧,这样问题就转化为1到n中的第i个数至少到第n+i个数要跳多少次.这个如果是一般图的话,就是类似树上求k步的祖先在哪,可以用倍增法,n*log(n).但是这题图比较特殊,i<j的话,i跳到的下一点位置不会超过j跳到的