A-------------------------------------------------------------------------------------------

题目链接:http://codeforces.com/problemset/problem/714/A

解题思路:

【题意】

Sonya每天只有[l1,r1]时间段内空闲,且在k时刻,她要打扮而不能够见Filya

Filya每天[l2,r2]时间段内空闲

问他们俩每天有多少时间能够在一起

【类型】
区间交

【分析】

显然,要求他们俩每天有多少时间在一起

其实就是求两区间的交集

那无外乎就是对两区间的位置关系进行分析

,。当然还有几个图这里就不一一列举了,主要就是找到两个的

相交区间,然后判断k是否在这个区间中,在的话减一;

这道题要用long long,否则会超!

下面给出AC代码:

 1 #include <bits/stdc++.h>
 2 using namespace std;
 3 typedef long long ll;
 4 int main()
 5 {
 6     ll l1,l2,r1,r2,k;
 7     while(cin>>l1>>r1>>l2>>r2>>k)
 8     {
 9         ll minn=min(r1,r2);
10         ll maxn=max(l1,l2);
11         ll ans=minn-maxn+1;
12         if(maxn>minn)
13         {
14             cout<<0<<endl;
15             continue;
16         }
17         if(k>=maxn&&k<=minn)
18             ans--;
19         cout<<ans<<endl;
20     }
21     return 0;
22 }

B-------------------------------------------------------------------------------------

题目链接:http://codeforces.com/problemset/problem/716/A

题目大意:

  给你一个N(N<=100000)个字母敲击的时间a[i](a[i]<=109),如果在M时间内没有敲击那么屏幕就清零,否则屏幕上就多一个字母,问最后屏幕剩下几个字母。

打下下一个字母的时候,如果和之前字母打下的时间不超过k的话,则保留前面的继续打,如果超过了,则前面的字母全部消失,只留下这一个字母。

下面给出AC代码:

 1 #include <bits/stdc++.h>
 2 using namespace std;
 3 int main()
 4 {
 5     int a[100005];
 6     int n,t;
 7     while(scanf("%d%d",&n,&t)!=EOF)
 8     {
 9         for(int i=0;i<n;i++)
10             scanf("%d",&a[i]);
11             int ans=1;
12         for(int i=0;i<n-1;i++)
13         {
14             if(a[i+1]-a[i]<=t)
15             ans++;
16             else ans=1;
17         }
18         printf("%d\n",ans);
19     }
20     return 0;
21 }

C----------------------------------------------------------------------------------------------

题目链接:http://codeforces.com/problemset/problem/719/A

分析:当时这题还懵了一阵子,之前好像比赛写过,之前直接去取最后两项去比较,WA...心酸!后来看了下题目才发现,得看到临界点0,15,发现这题目很简单!直接做就是了!

下面给出AC代码:

 1 #include <bits/stdc++.h>
 2 using namespace std;
 3 int main()
 4 {
 5     int n,i;
 6     int a[100];
 7     while(cin>>n)
 8     {
 9         for(i=1;i<=n;i++)
10             cin>>a[i];
11         if(n==1&&a[n]!=15&&a[n]!=0)
12             cout<<-1<<endl;
13         else if(a[n]==15)
14             cout<<"DOWN"<<endl;
15         else if(a[n]==0)
16             cout<<"UP"<<endl;
17         else if(a[n]<15&&a[n]>a[n-1])
18         cout<<"UP"<<endl;
19         else if(a[n]<15&&a[n]<a[n-1])
20             cout<<"DOWN"<<endl;
21     }
22     return 0;
23 }

D-------------------------------------------------------------------------------------------

题目链接:http://codeforces.com/problemset/problem/719/B

分析:细想只有两种模式,一种brbrbr... 另一种rbrbrb... 只需要统计这两种模式下,需要的两种操作数中最小的一个,即是答案。

下面给出AC代码:

 1 #include <bits/stdc++.h>
 2 using namespace std;
 3 const int MAXN = 100005;
 4 char a[MAXN];
 5 int main()
 6 {
 7     int n;
 8     while(cin>>n)
 9     {
10         scanf("%s",a);
11         int m = 0;
12         int t=0;
13         int u=0;
14         int v=0;
15         for(int i=0; i<n; i++)
16         {
17             if(i%2==0)
18             {
19                 if(a[i]=='r')
20                     m++;
21                 if(a[i]=='b')
22                     t++;
23             }
24             else
25             {
26                 if(a[i]=='r')
27                     u++;
28                 if(a[i]=='b')
29                     v++;
30             }
31         }
32         int x=max(t,u);
33         int y=max(m,v);
34         int z=min(x,y);
35         printf("%d\n",z);
36     }
37     return 0;
38 }

E-------------------------------------------------------------------------------------------

题目链接:http://poj.org/problem?id=1067
分析:

威佐夫博弈

威佐夫博弈(Wythoff Game):有两堆各若干个物品,两个人轮流从某一堆或同时从两堆中取同样多的物品,规定每次至少取一个,多者不限,最后取光者得胜。

如果甲面对(0,0),那么甲已经输了,这种局势我们称为奇异局势。前几个奇异局势是:(0,0)、(1,2)、(3,5)、(4,7)、(6,10).可以看出,a0=b0=0,ak是未在前面出现过的最小自然数,而 bk=ak+k.

那么任给一个局势(a,b),怎样判断它是不是奇异局势呢?我们有如下公式:

ak =[k(1+√5)/2],bk= ak + k  (k=0,1,2,...,n 方括号表示取整函数)

奇妙的是其中出现了黄金分割数(1+√5)/2 = 1。618...,因此,由ak,bk组成的矩形近似为黄金矩形,由于2/(1+√5)=(√5-1)/2,可以先求出j=[a(√5-1)/2],若a=[j(1+√5)/2],那么a = aj,bj = aj + j,若不等于,那么a = aj+1,bj+1 = aj+1+ j + 1,若都不是,那么就不是奇异局势。然后再按照上述法则进行,一定会遇到奇异局势。

下面给出AC代码:

 1 #include <iostream>
 2 #include <cmath>
 3 #include <stdio.h>
 4 using namespace std;
 5 int main()
 6 {
 7     int a,b;
 8     int k;
 9     int t;
10     int a1;
11     while(~scanf("%d%d",&a,&b))
12     {
13         if(a>b)
14         {
15            t=a;
16            a=b;
17            b=t;
18         }
19         k=b-a;
20         a1=(int)((double)(sqrt(5.0)+1)/2*k);
21         if(a1==a)
22             printf("0\n");
23         else printf("1\n");
24     }
25     return 0;
26 }

ECJTUACM16 Winter vacation training #5 题解源码相关推荐

  1. ECJTUACM16 Winter vacation training #4 题解源码

    https://vjudge.net/contest/149692#overview 这周一VJ比赛,题解&源码已完成! A.................................. ...

  2. April Fools Contest 2017 题解源码(A,数学 B,数学 C,数学 D,字符串 E,数字逻辑 F,排序,卡时间,G,数学)...

    A. Numbers Joke time limit per test:2 seconds memory limit per test:64 megabytes input:standard inpu ...

  3. 2017广东工业大学程序设计竞赛决赛 题解源码(A,数学解方程,B,贪心博弈,C,递归,D,水,E,贪心,面试题,F,贪心,枚举,LCA,G,dp,记忆化搜索,H,思维题)...

    心得: 这比赛真的是不要不要的,pending了一下午,也不知道对错,直接做过去就是了,也没有管太多! Problem A: 两只老虎 Description 来,我们先来放松下,听听儿歌,一起&qu ...

  4. 2017年浙江理工大学程序设计竞赛校赛 题解源码(A.水, D. 简单贪心 ,E.数论,I 暴力)...

    Problem A: 回文 Time Limit: 1 Sec  Memory Limit: 128 MB Submit: 1719  Solved: 528 Description 小王想知道一个字 ...

  5. 2016广东工业大学新生杯决赛网络同步赛暨全国新生邀请赛 题解源码

    Problem A: pigofzhou的巧克力棒 Description 众所周知,pigofzhou有许多妹子.有一天,pigofzhou得到了一根巧克力棒,他想把这根巧克力棒分给他的妹子们.具体 ...

  6. 喵哈哈村的魔法考试 Round #1 (Div.2) 题解源码(A.水+暴力,B.dp+栈)

    A.喵哈哈村的魔法石 发布时间: 2017年2月21日 20:05   最后更新: 2017年2月21日 20:06   时间限制: 1000ms   内存限制: 128M 描述 传说喵哈哈村有三种神 ...

  7. 第22章:针对Cloze Tests基于Attention机制的的MRC领域开山之作:Teaching Machines to Read and Comprehend架构设计及完整源码实现

    1,对Text提供精细化的语言理解能力和推理能力的MRC为何需要Neural Networks和Attention机制的支持? 2,基于大规模训练数据集的集特征工程和分类于一体的深度学习MRC 3,数 ...

  8. unity精品VR飞行游戏源码unity鸟飞翔探索VR游戏项目Equilibrium VR (Winter) 1.3

    unity鸟飞翔探索VR游戏项目Equilibrium VR (Winter) 1.3 所支持的Unity版本:5.3.4 及以上版本 This is a fantastic winter scene ...

  9. activity 点击后传递数据给fragment_Fragment 新特性 : Fragment Result API 使用以及源码分析

    原标题: Android Fragments: Fragment Result 原文地址: https://proandroiddev.com/android-fragments-fragment-r ...

最新文章

  1. 刻意练习:LeetCode实战 -- Task05. 最接近的三数之和
  2. Matlab中fileter和conv的区别及卷积的计算方法
  3. mybatis动态sql中where标签的使用
  4. Popush任务之linux配置篇
  5. ftp服务器连接成功不显示端口,ftp被动联接端口是怎样确定的
  6. 文本处理算法_python 文本处理
  7. getFullYear 方法
  8. 输出结果为16的python表达式_第一周作业(rayco)
  9. Halcon 深度学习(一):分类
  10. 2021数据库课程设计培训笔记:【jdbc】部分
  11. 用CSS实现立方体360度旋转
  12. hdoj 1163 Eddy's digital Roots(数学问题,继续分析) .
  13. 马来西亚数字自由贸易区的发展实践
  14. thinksystem sr550 安装ubuntu14.04 无法识别网卡驱动(连不了网)
  15. Calibre for Mac v5.20.0 中文版 电子书阅读管理工具
  16. php ses 发送邮件,使用 Amazon SES API 和 AWS SDK for PHP 版本 3 验证电子邮件身份 - 适用于 PHP 的 AWS 开发工具包...
  17. useful eclipse plugins
  18. Vue 知识点汇总(下)--附案例代码及项目地址
  19. Java 蓝桥杯 我们的征途是星辰大海
  20. FFmpeg 出现错误 Invalida data found when processing input

热门文章

  1. 给JFinal添加 Sqlite 数据库支持
  2. Lync Server 2010标准版系列PART4:部署准备
  3. 云监控状态调查:公有云和混合云的监控成熟度落后于传统数据中心
  4. 《51单片机应用开发从入门到精通》——2.2 跑马灯实例
  5. visudo使用-怎样将mount权限给普通用户
  6. 2014-11-18--Hadoop的基础学习(五)--编写不同MapReudce程序及其特性(下)
  7. TCP连接中TIME_WAIT连接过多
  8. html中事件调用JavaScript函数时有return与没有return的区别
  9. 危害企业IT系统最严重的五个安全威胁
  10. Singleton模式