CSUST 8.5 早训
## 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 早训相关推荐
- 大一java实训报告1500字_从800字小作文,到3000字小论文你用了多久? | 校媒FM
前不久,大四的学长.学姐刚结束被老师们不断"为难"的开题答辩,不少当事人直呼"太难了!". 一个熟悉的学姐是这样在朋友圈吐槽的:"老师提问得也太犀利了 ...
- 学计算机学体育生闺女,数学老师转行教体育 他有4个特别的“女儿”
王远文为学生示范篮球动作.受访者供图 清晨5点,大多数人还在沉睡,武隆区第二实验小学体育教师王远文就已早早起床,赶往学校准备带领学生开始早训.这个习惯,他已坚持了29个年头. 数学老师转行教体育 清晨 ...
- springboot 做表白墙_华农表白墙144期 | 等什么时候,她从我开的花店前经过,我把整个花店送个她可好。...
关注农农,每期表白墙都不错过 [点歌台] 公众号后台回复[点歌]即可分享你喜欢的歌曲今日歌曲来自 @kk 的分享ta说:''我想送一朵花给她,但是送什么呢,我去看了看各种花对应的花语,好多好多花都想送 ...
- 天黑请闭眼服务器维护中,天黑请闭眼
狼来? 一 天黑请闭眼! 狼人请睁眼! 预言家请睁眼! 你是否觉得熄灯了像狼来了呢 "狼来啦!"伙计们你们准备好了吗? 那么,谁是预言家呢? 相信很多同学9月底 已经从各种地方看到 ...
- 营地第一天之今天我是伙委
迷迷糊糊的被冷醒了.睁开眼睛看到帐篷里面只剩下自己一个人.难怪自己会被冻醒原来睡在旁边的人肉被子起床了.当自己拖着迷糊的眼睛爬出帐篷.一股自然的气息涌进自己的呼吸道.眼睛被这种气息深深的吸引住了.如画 ...
- 2012年绿色行调研与环教的日子
2102绿色行环教与调研的日子 日自己过得真的很快.想到我们是18号来到这里的.今天是23号.不知不觉中就过去了四天的时间.四天里自己也是主要在忙着公宣与伙委的工作. 很奇妙的一天,醒来的时候发现自己 ...
- 最近,可笑的事情挺多
热点问题都经不住细分析,比如这 2 件 01 理财! 这是虽有中产都会碰到的问题.没错,理财就是中产最容易被收割的坑之一.吃饭都成问题的人,不会考虑理财:富甲一方的人,有的是渠道生财,看不上那点利率: ...
- Java企业实训 - 01 - Java前奏
前言: 虽然个人专攻.NET方向,不过由于个人是干教育行业的,方方面面的东西,不能说都必须精通,但肯定多少都会涉及到. 一个菜鸟学员,从啥都不会,经过一步步学习,最后到企业上手掌管一个模块甚至一个项目 ...
- linux 系统网络服务器组建,配置和管理实训教程 pdf,Linux网络服务器配置管理项目实训教程2...
Linux网络服务器配置管理项目实训教程2 附录2 Linux常用命令 在文本模式和终端模式下,经常使用Linux命令来查看系统的状态和监视系统的操作,如对文件和目录进行浏览.操作等.在Linux较早 ...
最新文章
- UA MATH571A 一元线性回归IV 模型诊断
- 锗钛项圈真的可以治颈椎病吗
- python深浅拷贝的底层理解_理解python中的深拷贝与浅拷贝
- Imageready(IR)动画介绍
- 嵌入式设备ntp同步时间的一些笔记
- python实现批量转换文件编码(批转换编码示例)
- USACO Section 2.1 Sorting a Three-Valued Sequence 解题报告
- android圆角柱状图,MPAndroidChart 圆角柱状图-Go语言中文社区
- Fun with Opterons, SATA, and INNODB
- 计算机端口详解(总结)
- 创业者必备知识SWOT分析模型+案例分析
- AECC2015官方破解补丁/AdobeAfterEffectsCC2015中文版免费下载(AE安装教程)
- python按键盘上哪个键运行_python键盘操作PyKeyboard安装使用详解
- JAVA启动杀怒尖塔_杀戮尖塔如何修改class 杀戮尖塔修改class文件方法步骤图解
- 简单的音频播放功能MediaPlayer使用中所遇到的坑。
- DigitalPersona 指纹仪的使用
- Android各版本分布
- 热乎的过万字GameFramework讲解笔记文档
- Thinkpad X200 换屏记
- 回忆当年高考的一道数学证明题
热门文章
- j2ee 引入java类_J2EE学而时习之——JavaBean
- Kubernetes监控:部署Heapster、InfluxDB和Grafana
- python切片逆序_python 切片,字符串逆序神器
- 使用Spark GraphX对B站视频进行热度分析
- CSDN中Markdown新版编辑图片居中问题
- Nginx之14斗转星移 - (GeoIP) 1
- ActivitiBpm6.0官方流程图绘制工具搭建-bpm
- startService和bindService的区别
- matlab z x y,matlab z=x*y
- 非常好用的Flash控件