## Problem A

A - Meeting of Old Friends

CodeForces - 714A

题意:

解题说明:此题其实是求两段区间的交集,注意要去除掉交集中的某个点。

题解:

C++版本一

#include<cstdio>
#include<iostream>
#include<algorithm>
#include<cstring>
#include<string>
#include<cmath>int main()
{long long int l1,r1,l2,r2,k,x,y;scanf("%lld%lld%lld%lld%lld",&l1,&r1,&l2,&r2,&k);x=(l1>=l2)?l1:l2;y=(r1<=r2)?r1:r2;if(r1<l2||r2<l1){printf("0\n");}else{if(x<=k&&k<=y){printf("%lld\n",y-x);}else{printf("%lld\n",y-x+1);}}return 0;
}

View Code

## Problem B

B - Filya and Homework

CodeForces - 714B

题意:

给定一个序列,对于每一个元素,只能 + 或者 - 一个数val。这个数一旦选定,就不能改。

问能否变成全部数字都一样。

题解:

这题的正解是观察法。也可以证明。

①、全部数字都一样、有两个不同数字、三个不同数字(a[1] + a[3] =  2 * a[2])这些都易懂

那4个不同数字为什么是no呢

可以想象成找不到一个点,作为圆心,包含另外3个点(这3点在一直线)。

所以对于有三个不同数字那个,其实就是判断是否为圆心。

C++版本一

#include <bits/stdc++.h>
using namespace std;
const int N = 5000000+10;
int a[N];
int main(int argc, char const *argv[])
{
int n;
cin >> n ;
for(int i = 1;i <= n ; i ++) cin >> a[i];sort(a + 1, a + 1 + n );int x  = unique(a+1,a + n+1) - a - 1;
//cout << a[1] << a[2] << a[3] << a[4] << endl;
//cout << x << endl;
if(x < 3 || (x == 3 &&a[2] - a[1] == a[3] - a[2] )){cout << "YES" << endl;}else cout << "NO" << endl;return 0;}

View Code

## Problem C

C - Sonya and Queries

CodeForces - 714C

题意:

题解:

字典树

C++版本一

#include <bits/stdc++.h>
using namespace std;
const int N = 5000000+10;
struct Trie
{int ch[N][3];int sz;int val[N];void Init(){sz=1;memset(ch,0,sizeof ch);memset(val,0,sizeof val);}void Insert(char *num,int op){int u=0;for(int i=20;i>=strlen(num);i--){if(ch[u][0]==0)ch[u][0]=sz++;u=ch[u][0];}for(int i=0;i<strlen(num);i++){int c=(num[i]-'0')%2;if(ch[u][c]==0)ch[u][c]=sz++;u=ch[u][c];}val[u]+=op;}int Find(char *num){int u=0;int cur=0;for(int i=20;i>=strlen(num);i--){if(ch[u][0]==0)return 0;u=ch[u][0];cur+=val[u];}for(int i=0;i<strlen(num);i++){int c=(num[i]-'0')%2;if(ch[u][c]==0)return 0;u=ch[u][c];cur+=val[u];}return cur;}
};
Trie trie;
int main()
{trie.Init();int q;scanf("%d",&q);getchar();while(q--){char s[2];char x[20];scanf("%s%s",s,x);//cout<<"x="<<x<<endl;if(s[0]=='+')trie.Insert(x,1);if(s[0]=='?')printf("%d\n",trie.Find(x));if(s[0]=='-')trie.Insert(x,-1);}return 0;
}

View Code

## Problem D

D - Crazy Computer

CodeForces - 716A

题意:

题意:录入n个数,c为临界值,如果n个数中相邻的相减小于c就记录如果有一次不满足就删去前面记录的数,最后输出屏幕上存了几个数。

题解:

题意:录入n个数,c为临界值,如果n个数中相邻的相减小于c就记录如果有一次不满足就删去前面记录的数,最后输出屏幕上存了几个数。

C++版本一

#include <bits/stdc++.h>
using namespace std;
const int N = 5000000+10;
int a[N];int main(int argc, char const *argv[])
{int n , k;cin >> n >> k ;long long sum =  0;for(int i = 1;i <= n ;i ++){int  x;//cin >> x;cin >> a[i];if(a[i] - a[i - 1] > k) sum = 0;sum ++;}cout << sum << endl;return 0;
}

View Code

## Problem E

E - Complete the Word

CodeForces - 716B

题意:

题目要求的是输出全部字符串!不是满足条件的子串!!

题解:

从前往后暴力搜索满足条件的即可,依次搜26个字母。

当然如果总长度小于26肯定输出-1。

最后处理好?的填充处理就行了。

C++版本一

#include <bits/stdc++.h>
using namespace std;
const int N = 5000000+10;
int a[N];
int vis[30];
char str[1000005];
int main(int argc, char const *argv[])
{
//string str;cin >> str;int n = strlen(str);int i = 0 ;if(n < 26) {printf("-1\n");return 0;}bool flag = 1;for(int i = 0;i <= n - 26 && flag; i ++){int tail1 = 0 , tail2 = 0;memset(vis,0,sizeof vis);for(int j = i;j < i +  26 ;j ++){if(str[j] >= 'A' && str[j] <= 'Z'){//  cout << str[j] - 'A' << " " << j - i << endl;vis[str[j] - 'A'] ++;}else tail2 ++;// if(j = i + 25) break;
        }for(int j = 0;j < 26;j ++){if(vis[j] == 1)tail1 ++; }if(tail1 + tail2 == 26){int t = 0;for(int j = i;j < i + 26;j ++){if(str[j] == '?'){for(;t < 26;t ++){if(vis[t] == 0){str[j] = 'A' + t;t++;break;}}}}flag = 0;}//if(flag)
    }for(int i = 0;i < n;i ++){if(str[i] == '?'){str[i] = 'A';}}if(flag) cout << -1 << endl;else cout << str << endl;return 0;
}

View Code

## Problem F

F - Plus and Square Root

CodeForces - 716C

题意:

题意:开始给你个数x=2,然后等级k为1,然后开始加等级k,如果x是完全平方数并且开方后是k+1的倍数,就对x开方,然后等级增加一级,问每升高一级需要加多少次

题解:

找规律

等级k      初始数字       加的次数*等级k       得到x         开根号后的x                       关系

√x  /  (k+1) = k

1               2                   +2 * 1                 4                     2                           2   /  2   =  1

2               2                   +17 * 2              36                    6                           6   /  3   =  2

3               6                   +46 * 3              144                  12                        12  /  4   =  3

4              12                  +97 * 4              400                  20                        20  /  5   =  4

所以可以得到关系递推式:

(k-1)*k       +       k*n         =         ( k*(k+1))²

上一级开根         次数*等级                  新的完全平方数x

号得到的x

所以每次所需要加的次数n =( (k*(k+1))² - (k-1)*k)/k  = k*(k+1)² - (k-1)

C++版本一

#include <bits/stdc++.h>
using namespace std;
const int N = 5000000+10;
int a[N];
int vis[30];
char str[1000005];int main(int argc, char const *argv[])
{long long n ;cin >> n ;if(n == 1){cout << "2" << endl;}else{//int ans = 2;cout << "2" << endl;//3int k = 2;for(long long i = 2;i <= n ;i ++){cout << (i * (i + 1)*(i+1) - i + 1) << endl;// k = sqrt(k * (i + 1) + 1);//  ans ++;
        }   }return 0;
}

View Code

转载于:https://www.cnblogs.com/DWVictor/p/11305178.html

CSUST 8.5 早训相关推荐

  1. 大一java实训报告1500字_从800字小作文,到3000字小论文你用了多久? | 校媒FM

    前不久,大四的学长.学姐刚结束被老师们不断"为难"的开题答辩,不少当事人直呼"太难了!". 一个熟悉的学姐是这样在朋友圈吐槽的:"老师提问得也太犀利了 ...

  2. 学计算机学体育生闺女,数学老师转行教体育 他有4个特别的“女儿”

    王远文为学生示范篮球动作.受访者供图 清晨5点,大多数人还在沉睡,武隆区第二实验小学体育教师王远文就已早早起床,赶往学校准备带领学生开始早训.这个习惯,他已坚持了29个年头. 数学老师转行教体育 清晨 ...

  3. springboot 做表白墙_华农表白墙144期 | 等什么时候,她从我开的花店前经过,我把整个花店送个她可好。...

    关注农农,每期表白墙都不错过 [点歌台] 公众号后台回复[点歌]即可分享你喜欢的歌曲今日歌曲来自 @kk 的分享ta说:''我想送一朵花给她,但是送什么呢,我去看了看各种花对应的花语,好多好多花都想送 ...

  4. 天黑请闭眼服务器维护中,天黑请闭眼

    狼来? 一 天黑请闭眼! 狼人请睁眼! 预言家请睁眼! 你是否觉得熄灯了像狼来了呢 "狼来啦!"伙计们你们准备好了吗? 那么,谁是预言家呢? 相信很多同学9月底 已经从各种地方看到 ...

  5. 营地第一天之今天我是伙委

    迷迷糊糊的被冷醒了.睁开眼睛看到帐篷里面只剩下自己一个人.难怪自己会被冻醒原来睡在旁边的人肉被子起床了.当自己拖着迷糊的眼睛爬出帐篷.一股自然的气息涌进自己的呼吸道.眼睛被这种气息深深的吸引住了.如画 ...

  6. 2012年绿色行调研与环教的日子

    2102绿色行环教与调研的日子 日自己过得真的很快.想到我们是18号来到这里的.今天是23号.不知不觉中就过去了四天的时间.四天里自己也是主要在忙着公宣与伙委的工作. 很奇妙的一天,醒来的时候发现自己 ...

  7. 最近,可笑的事情挺多

    热点问题都经不住细分析,比如这 2 件 01 理财! 这是虽有中产都会碰到的问题.没错,理财就是中产最容易被收割的坑之一.吃饭都成问题的人,不会考虑理财:富甲一方的人,有的是渠道生财,看不上那点利率: ...

  8. Java企业实训 - 01 - Java前奏

    前言: 虽然个人专攻.NET方向,不过由于个人是干教育行业的,方方面面的东西,不能说都必须精通,但肯定多少都会涉及到. 一个菜鸟学员,从啥都不会,经过一步步学习,最后到企业上手掌管一个模块甚至一个项目 ...

  9. linux 系统网络服务器组建,配置和管理实训教程 pdf,Linux网络服务器配置管理项目实训教程2...

    Linux网络服务器配置管理项目实训教程2 附录2 Linux常用命令 在文本模式和终端模式下,经常使用Linux命令来查看系统的状态和监视系统的操作,如对文件和目录进行浏览.操作等.在Linux较早 ...

最新文章

  1. UA MATH571A 一元线性回归IV 模型诊断
  2. 锗钛项圈真的可以治颈椎病吗
  3. python深浅拷贝的底层理解_理解python中的深拷贝与浅拷贝
  4. Imageready(IR)动画介绍
  5. 嵌入式设备ntp同步时间的一些笔记
  6. python实现批量转换文件编码(批转换编码示例)
  7. USACO Section 2.1 Sorting a Three-Valued Sequence 解题报告
  8. android圆角柱状图,MPAndroidChart 圆角柱状图-Go语言中文社区
  9. Fun with Opterons, SATA, and INNODB
  10. 计算机端口详解(总结)
  11. 创业者必备知识SWOT分析模型+案例分析
  12. AECC2015官方破解补丁/AdobeAfterEffectsCC2015中文版免费下载(AE安装教程)
  13. python按键盘上哪个键运行_python键盘操作PyKeyboard安装使用详解
  14. JAVA启动杀怒尖塔_杀戮尖塔如何修改class 杀戮尖塔修改class文件方法步骤图解
  15. 简单的音频播放功能MediaPlayer使用中所遇到的坑。
  16. DigitalPersona 指纹仪的使用
  17. Android各版本分布
  18. 热乎的过万字GameFramework讲解笔记文档
  19. Thinkpad X200 换屏记
  20. 回忆当年高考的一道数学证明题

热门文章

  1. j2ee 引入java类_J2EE学而时习之——JavaBean
  2. Kubernetes监控:部署Heapster、InfluxDB和Grafana
  3. python切片逆序_python 切片,字符串逆序神器
  4. 使用Spark GraphX对B站视频进行热度分析
  5. CSDN中Markdown新版编辑图片居中问题
  6. Nginx之14斗转星移 - (GeoIP) 1
  7. ActivitiBpm6.0官方流程图绘制工具搭建-bpm
  8. startService和bindService的区别
  9. matlab z x y,matlab z=x*y
  10. 非常好用的Flash控件