Educational Codeforces Round 10 A B题、

A. Gabriel and Caterpillar

题意: 就是说  一个小孩子去观察毛毛虫从 h1的地方爬到h2的地方、毛毛虫从10点爬到22点、每小时爬的距离是a, 晚上22点到第二天早上10点 毛毛虫休息 每小时下落b距离、但是最初状态是那个小孩子从14点开始观察毛毛虫的, 必须过了24点才算一天

思路:模拟、但细节地方要注意

hint:但你要知道什么情况下永远也爬不上去,就是说每小时下落比每小时上升的距离大呢,但这还有个细节, 就是即使b>a 但毛毛虫是先可以爬10个小时,如果在这10个小时内爬到了h2 也就是说 及时b>a它也可以爬到

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cmath>
 4 int main()
 5 {
 6     int n,m;
 7     int a,b;
 8     while(~scanf("%d%d%d%d",&n,&m,&a,&b)){
 9         int ans=m-n;
10         int flag=1;        //标记变量、记录是否能爬到终点
11         int distance=0;
12         int time=0;
13         distance+=a*8;
14             if(distance<ans){
15                 while(1){
16                     distance-=b*12;        //休息
17                     ++time;            // 休息时间过了24点、 所以算一天
18                     distance+=a*12;
19                     if(distance>=ans)    break;
20                     if(b>=a){        //直接在循环里面判断、 因为前面可以爬的10小时可以到终点的话
21                         flag=0;        //  也就不会进循环了
22                         break;
23                 }
24             }
25         }
26         if(!flag)    printf("-1\n");
27         else        printf("%d\n",time);
28     }
29 }

B. z-sort

题意:先给你一个数列、问用着数列的数是否可以组成一个 对于数列中每一个偶数项 存在ai ≥ ai - 1、对于每一个奇数项 存在ai ≤ ai - 1思路:我是这样想的、既然要满足两个条件、 那么对于从前到后的奇数项来说是一个非递减的,对前到后的偶数项来说是一个非递增的、

那么对于所给的数列、 排一个序,然后贪心,具体看代码吧

  

 1 #include<cmath>
 2 #include<cstring>
 3 #include<iostream>
 4 #include<cstdio>
 5 #include<algorithm>
 6 using namespace std;
 7 int num[1005];
 8 int main()
 9 {
10     int n;scanf("%d",&n);
11     for(int i=1;i<=n;++i)
12         scanf("%d",&num[i]);
13     sort(num+1,num+n+1);
14     int ans[1005];
15     int add,dre;
16     add=1;
17     dre=n;
18     for(int i=1;i<=n;++i)            //构造这样一个数列
19         if(i%2==0)
20             ans[i]=num[dre--];
21         else
22             ans[i]=num[add++];
23         int flag=1;
24 //    for(int i=1;i<=n;++i)
25 //        printf("%d ",ans[i]);
26 //        printf("\n");
27     for(int i=2;i<=n;++i)        //判断构造的数列是否满足条件
28         if(i%2==0){
29             if(ans[i]<ans[i-1])    flag=0;
30         }
31         else
32             if(ans[i]>ans[i-1])    flag=0;
33     if(!flag)    printf("Impossible");
34     else    for(int i=1;i<=n;++i)    printf("%d ",ans[i]);
35     printf("\n");
36     return 0;
37 }

C  D 题意其实都看懂了、  就是做不出来     好气好气阿,

读题方面比以前好一点了、

继续努力吧、

时间: 2024-11-28 23:12:56

Educational Codeforces Round 10 A B题、的相关文章

Educational Codeforces Round 10 D. Nested Segments (树状数组)

题目链接:http://codeforces.com/problemset/problem/652/D 给你n个不同的区间,L或者R不会出现相同的数字,问你每一个区间包含多少个区间. 我是先把每个区间看作整体,按照R从小到大排序.然后从最小的R开始枚举每个区间,要是枚举到这个区间L的时候,计算之前枚举的区间有多少个Li在L之后,那么这些Li大于L的区间的数量就是答案.那我每次枚举的时候用树状数组add(L , 1) 说明在L这个位置上出现了区间,之后枚举的时候计算L之前的和,然后i - 1 -

Educational Codeforces Round 10 E - Pursuit For Artifacts (强联通缩点 + 回溯)

题目链接:http://codeforces.com/contest/652/problem/E 给你n个点m个边,x和y双向连接,要是z是1表示这条边上有宝藏,0则没有,最后给你起点和终点,问你要是到从起点到终点要是中间遇到宝藏就输出YES,否则就输出NO. 每条边只能经过一次,而且这个图保证连通的. 我用tarjan强连通缩点,把这个图变成一棵树,要是起点终点在一个连通分量里且分量里的边有宝藏,那么就输出YES.否则,就找起点到终点直接的路有没有宝藏,因为缩点之后是一棵树,所以起点和终点只有

Educational Codeforces Round 23 A-F 补题

A Treasure Hunt 注意负数和0的特殊处理.. 水题.. 然而又被Hack了 吗的智障 #include<bits/stdc++.h> using namespace std; int main() { int sa,sb,da,db,x,y; scanf("%d%d%d%d%d%d",&sa,&sb,&da,&db,&x,&y); sa=da-sa;sb=db-sb; if(sa<0)sa*=-1; if(

CF Educational Codeforces Round 10 D. Nested Segments 离散化+树状数组

题目链接:http://codeforces.com/problemset/problem/652/D 大意:给若干个线段,保证线段端点不重合,问每个线段内部包含了多少个线段. 方法是对所有线段的端点值离散化,按照左端点从大到小排序,顺着这个顺序处理所有线段,那么满足在它内部的线段一定是之前已经扫到过的.用树状数组判断有多少是在右端点范围内. 1 #include <iostream> 2 #include <vector> 3 #include <algorithm>

Educational Codeforces Round 20解(bu)题记录

A. Maximal Binary Matrix 解法:暴力模拟+贪心 #include<bits/stdc++.h> using namespace std; int a[110][110]; int main(){ int n,k,cmp,f=0;scanf("%d%d",&n,&k); if(k>n*n){puts("-1");return 0;}cmp=n; int r=1; while(k>=2*cmp-1){ k-

Educational Codeforces Round 74 (Rated for Div. 2)补题

慢慢来. 题目册 题目 A B C D E F G 状态 √ √ √ √ × ? ? //√,×,? 想法 A. Prime Subtraction res tp A 题意:给定\(x,y(x>y)\),问能否将\(x-y\)拆成任意多个质数之和 1.任意大于\(1\)的整数\(k\)都可以用\(2\)与\(3\)的线性表示 证: 若\(k\)是偶数,显然: 若\(k\)是奇数,则\(k\)可以表示成\(k = 3 + 2*k'\),显然: 毕. #include<bits/stdc++.h&

Educational Codeforces Round 21 F. Card Game(网络流之最大点权独立集)

题目链接:Educational Codeforces Round 21 F. Card Game 题意: 有n个卡片,每个卡片有三个值:p,c,l; 现在让你找一个最小的L,使得满足选出来的卡片l<=L,并且所有卡片的p的和不小于k. 选择卡片时有限制,任意两张卡片的c之和不能为质数. 题解: 和hdu 1565 方格取数(2)一样,都是求最大点权独立集. 不难看出来,这题再多一个二分. 注意的是在构造二部图的时候,按照c值的奇偶性构造. 当c==1时要单独处理,因为如果有多个c==1的卡片,

Educational Codeforces Round 37

Educational Codeforces Round 37 题面 题目详见CodeForces 先大概的写个翻译... A 有一个长度为\(n\)的花园 有\(K\)个水龙头, 假设水龙头的位置在\(x\) \(1s\)后\(x\)会被灌溉 \(2s\)后\([x-1,x+1]\)会被灌溉 \(js\)后\([x-j+1,x+j-1]\)会被灌溉 问这个花园在什么时候会被灌溉完 B 阅读理解题,我英语不好呀... 有\(n\)个人要去喝茶 每个人有一个\(l,r\) 表示这个人会在第\(ls

Educational Codeforces Round 40千名记

人生第二场codeforces.然而遇上了Education场这种东西 Educational Codeforces Round 40 下午先在家里睡了波觉,起来离开场还有10分钟. 但是突然想起来还没报名呢,并且电脑又是开机黑屏什么情况 莫非为之后的凉凉埋下了伏笔? 比赛之前联系了下余翱和叶可禾,似乎都要去切题的样子? 想到第一次有人一起打CF还是有点小激动的.于是果断屏蔽余翱QQ上的刷屏去看A题了. A. Diagonal Walking 非常仔细地把题读了一遍,然后……啥这不是字符串入门题