## 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+);
}
}
return ;
}

## 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 = +;
int a[N];
int main(int argc, char const *argv[])
{
int n;
cin >> n ;
for(int i = ;i <= n ; i ++) cin >> a[i];
sort(a + , a + + n );
int x = unique(a+,a + n+) - a - ;
//cout << a[1] << a[2] << a[3] << a[4] << endl;
//cout << x << endl;
if(x < || (x == &&a[] - a[] == a[] - a[] )){
cout << "YES" << endl;}
else cout << "NO" << endl;
return ; }

## Problem C

C - Sonya and Queries

CodeForces - 714C

题意:

题解:

字典树

C++版本一

#include <bits/stdc++.h>
using namespace std;
const int N = +;
struct Trie
{
int ch[N][];
int sz;
int val[N];
void Init()
{
sz=;
memset(ch,,sizeof ch);
memset(val,,sizeof val);
} void Insert(char *num,int op)
{
int u=;
for(int i=;i>=strlen(num);i--)
{
if(ch[u][]==)
ch[u][]=sz++;
u=ch[u][];
}
for(int i=;i<strlen(num);i++)
{
int c=(num[i]-'')%;
if(ch[u][c]==)
ch[u][c]=sz++;
u=ch[u][c];
}
val[u]+=op;
} int Find(char *num)
{
int u=;
int cur=;
for(int i=;i>=strlen(num);i--)
{
if(ch[u][]==)
return ;
u=ch[u][];
cur+=val[u];
}
for(int i=;i<strlen(num);i++)
{
int c=(num[i]-'')%;
if(ch[u][c]==)
return ;
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[];
char x[];
scanf("%s%s",s,x);
//cout<<"x="<<x<<endl;
if(s[]=='+')
trie.Insert(x,);
if(s[]=='?')
printf("%d\n",trie.Find(x));
if(s[]=='-')
trie.Insert(x,-);
}
return ;
}

## 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 = +;
int a[N]; int main(int argc, char const *argv[])
{
int n , k;
cin >> n >> k ;
long long sum = ;
for(int i = ;i <= n ;i ++){
int x;
//cin >> x;
cin >> a[i];
if(a[i] - a[i - ] > k) sum = ;
sum ++; }
cout << sum << endl;
return ;
}

## Problem E

E - Complete the Word

CodeForces - 716B

题意:

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

题解:

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

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

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

C++版本一

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

## 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 = +;
int a[N];
int vis[];
char str[]; int main(int argc, char const *argv[])
{
long long n ;
cin >> n ;
if(n == ){
cout << "" << endl;
}
else{
//int ans = 2;
cout << "" << endl;
//3int k = 2;
for(long long i = ;i <= n ;i ++){
cout << (i * (i + )*(i+) - i + ) << endl;
// k = sqrt(k * (i + 1) + 1);
// ans ++;
}
}
return ;
}

CSUST 8.5 早训的更多相关文章

  1. CSUST 8.4 早训

    ## Problem A A - Memory and Crow CodeForces - 712A 题意: 分析可得bi=ai+ai+1 题解: 分析可得bi=ai+ai+1 C++版本一 #inc ...

  2. CSUST 8.3 早训

    A - Settlers' Training CodeForces - 63B 题意 给你一串数字,相同的数字为一组,每次可以给一组中的一个数字加一,问这一串数字全变成K需要多少步? 题解 模拟 C+ ...

  3. B - Planning 早训 贪心

    B - Planning 这个题目我知道要贪心,也知道怎么贪,但是写不出来,感觉自己好菜. 这个题目要用优先队列维护. 题目大意是飞机延误,不同的飞机每次延误一分钟,它的代价不同,然后问,怎么安排才能 ...

  4. 获取技能的成功经验和关于C语言学习的调查 2015528

    内容提要 你有什么技能比大多人(超过90%以上)更好?针对这个技能的获取你有什么成功的经验?与老师博客中的学习经验有什么共通之处? 有关C语言学习的调查 你是怎么学习C语言的?(作业,实验,教材,其他 ...

  5. 20155228 获取技能的成功经验和关于C语言学习的调查

    内容提要 你有什么技能比大多人(超过90%以上)更好?针对这个技能的获取你有什么成功的经验?与老师博客中的学习经验有什么共通之处? 有关C语言学习的调查 你是怎么学习C语言的?(作业,实验,教材,其他 ...

  6. 吐泡泡(2018年全国多校算法寒假训练营练习比赛(第二场)+栈模拟)+Plug-in(codeforces81A+栈模拟)

    吐泡泡题目链接:https://www.nowcoder.com/acm/contest/74/A 题目: 思路: 这种题目当初卡了我很久,今天早训时遇到一个一样得题,一眼就想到用栈模拟,就又回来把这 ...

  7. B - Save the problem! CodeForces - 867B 构造题

    B - Save the problem! CodeForces - 867B 这个题目还是很简单的,很明显是一个构造题,但是早训的时候脑子有点糊涂,想到了用1 2 来构造, 但是去算这个数的时候算错 ...

  8. C - Ordering Pizza CodeForces - 867C 贪心 经典

    C - Ordering Pizza CodeForces - 867C C - Ordering Pizza 这个是最难的,一个贪心,很经典,但是我不会,早训结束看了题解才知道怎么贪心的. 这个是先 ...

  9. C. Journey bfs 拓扑排序+dp

    C. Journey 补今天早训 这个是一个dp,开始我以为是一个图论,然后就写了一个dij和网络流,然后mle了,不过我觉得如果空间开的足够的,应该也是可以过的. 然后看了题解说是一个dp,这个dp ...

随机推荐

  1. 【学习小记】Berlekamp-Massey算法

    Preface BM算法是用来求一个数列的最短线性递推式的. 形式化的,BM算法能够对于长度为n的有穷数列或者已知其满足线性递推的无穷数列\(a\),找到最短的长度为m的有穷数列\(c\),满足对于所 ...

  2. javac不是内部或外部命令在win10上的解决方案

    Path环境变量能够让你在任何路径都能使用命令,可能你百度谷歌了各种方案都无法解决javac无法使用的问题,那么你可以试试如下解决方案: 首先博主配置了JAVA_HOME 参数为 C:\Program ...

  3. BZOJ 4422 Cow Confinement (线段树、DP、扫描线、差分)

    题目链接: https://www.lydsy.com/JudgeOnline/problem.php?id=4422 我真服了..这题我能调一天半,最后还是对拍拍出来的...脑子还是有病啊 题解: ...

  4. AI-人工智能/机器学习 seetafaceJNI

    基于中科院seetaface2进行封装的JAVA人脸识别库,支持人脸识别.1:1比对.1:N比对. 项目介绍 基于中科院seetaface2进行封装的JAVA人脸识别算法库,支持人脸识别.1:1比对. ...

  5. leetcode-mid-math-29. Divide Two Integers-NO

    mycode   91.28% class Solution(object): def divide(self, dividend, divisor): """ :typ ...

  6. office toolkit怎么用(以激活office professional 2013为例)

    第一步:双击打开office toolkit工具,并选择office按钮(激活windows10选择windows按钮) 第二步:选择相应的office版本,我电脑安装的是Microsoft Offi ...

  7. 前端Node项目发布流程

    最近在做前端的发布流程,发布流程的主要实现以下几个方面: 构建:包括JavaScript.css.html等的压缩,以及版本控制,利用md5生成版本号替换文件引用,实现长缓存策略. 发布:输出新版本的 ...

  8. Nginx+Php不支持并发,导致curl请求卡死(Window环境)

    1.问题描述:项目中开发很多对外接口,于是在本项目中写了测试脚本来验证接口.然鹅,发现Curl请求出现卡死情况,没有响应. 2.具体原因:在window环境下配置的nginx+php环境时,windo ...

  9. handsonetable+vue 表格在线编辑

    <template> <div> <div id="example-container" class="wrapper"> ...

  10. 阶段3 1.Mybatis_06.使用Mybatis完成DAO层的开发_8 properties标签的使用及细节

    properties 可以把数据库链接的配置放在上面的properties里面 #{占位符}的形式去引用上面的.下面的内容就是引用上面的内容的定义. 运行查询的方法测试一下 这样改造可以成功的运行程序 ...