## 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. linux服务器远程桌面 数字键盘不能用
  2. MTK6589下传感器框架结构和代码分析以及传感器的参数指标
  3. C++虚继承下的内存模型(二)
  4. 写给未来产品总监的一封信
  5. linux kill pid文件,从一次事故谈谈 pid 文件的作用
  6. http/https监控获取响应时间(DNS解析时间,RRT时间,服务器处理时间等)
  7. 【云周刊】第139期:阿里年会黑科技全揭秘:IoT手环、人脸识别验票、大屏弹幕互动等“十八般武艺”轮番上阵...
  8. 记一次 .NET 某智慧水厂API 非托管内存泄漏分析
  9. Codeforces Round #695(Div. 2)
  10. python的坐标代码_基于Python的地图坐标服务接口调用代码实例
  11. 【elasticsearch】es直接put一个数据到es Can‘t merge because of conflicts Cannot update enabled setting _source
  12. HDU2074 叠筐【打印图案】
  13. Linux关机重启命令
  14. 从零实现深度学习框架——N-Gram语言模型(一)
  15. Intel笔记本处理器发展简史(二)
  16. 第九届蓝桥杯省赛b组c/c++
  17. ZYNQ平台Linux4.6内核蓝牙音频
  18. 阿里云主要产品及功能介绍,阿里云产品分为6大分类:云计算基础/安全/大数据/人工智能/企业应用/物联网
  19. 清华大学施一公,刚刚发现他的科学网的博客,好博啊
  20. Oliver的救援【BFS】

热门文章

  1. CSDN中Markdown新版编辑图片居中问题
  2. 李宏毅深度学习笔记(一)Adagrad
  3. 夏普屏、三星屏、台湾屏、IPS硬屏 各类液晶屏详解
  4. synchronized的可重入锁
  5. 023. 我有一只大黑狗
  6. github删除仓库_github怎么删除仓库
  7. python面向对象图片_趣味解读Python面向对象编程 (类和对象)
  8. 风口浪尖的第三方打车软件:叫停还是合作?
  9. Visual Studio 2019 编译Firefox 68.0.1
  10. 【数学建模】第二讲TOPSIS法