ECJTUACM16 Winter vacation training #4 题解&源码
https://vjudge.net/contest/149692#overview 这周一VJ比赛,题解&源码已完成!
A.........................................................................................
题目链接→Codeforces Problem 712A Memory and Crow
【题意】 有n个数b1, b2, ..., bn
a1, a2, ..., an是通过等式ai = bi - bi + 1 + bi + 2 - bi + 3....(±)bn得到的
现给你a1, a2, ..., an这n个数,问b1, b2, ..., bn是多少
详解请参看我的随笔!下面给出AC代码:
1 #include <bits/stdc++.h>
2 using namespace std;
3 int main()
4 {
5 int n,a,b;
6 while(cin>>n)
7 {
8 for(int i=1;i<=n;i++)
9 {
10 cin>>a;
11 if(i>1)
12 cout<<a+b<<" ";
13 b=a;
14 }
15 cout<<a<<endl;
16 }
17 return 0;
18 }
B.........................................................................................
题目链接→Codeforces Problem 708A Letters Cyclic Shift
【题意】 从仅有小写字母组成的字符串s中挑选出一个非空子串
将该子串中的每个字母均替换成前一个字母,如'b'换成'a','c'换成'b',以此类推,特别的,'a'要换成'z'
问经过一次转换之后,字典序最小的字符串s为多少
详解请参看我的随笔!下面给出AC代码:
1 #include <bits/stdc++.h>
2 using namespace std;
3 int main()
4 {
5 int i,k=0;
6 char s[100005];
7 gets(s);
8 int len=strlen(s);
9 for(i=0;s[i]!=' ';i++)
10 if(s[i]!='a')
11 break;
12 for(;s[i]!=' ';i++)
13 {
14 if(s[i]=='a')
15 break;
16 s[i]--;
17 k++;
18 }
19 if(!k)
20 s[strlen(s)-1]='z';
21 puts(s);
22 return 0;
23 }
C.........................................................................................
题目链接→Codeforces Problem 712B Memory and Trident
【题意】 Memory从二维坐标系的原点出发,按字符串s的指示运动
R:向右;L:向左;U:向上;D:向下
Memory最终想回到原点,问至少需要改变字符串s中的几个字符
若无论如何改变都无法回到原点,输出"-1"
详解请参看我的随笔!下面给出AC代码:
1 #include <bits/stdc++.h>
2 using namespace std;
3 int main()
4 {
5 char s[100005];
6 int len;
7 int a=0,b=0,c=0,d=0;
8 while(gets(s))
9 {
10 len=strlen(s);
11 if(len%2==1)
12 {
13 printf("-1n");
14 }
15 else
16 {
17 for(int i=0;s[i]!=' ';i++)
18 {
19 if(s[i]=='U')
20 a++;
21 else if(s[i]=='D')
22 b++;
23 else if(s[i]=='L')
24 c++;
25 else if(s[i]=='R')
26 d++;
27 }
28 printf("%dn",(abs(a-b)+abs(c-d))/2);
29 a=b=c=d=0;
30 }
31 }
32 return 0;
33 }
D.........................................................................................
题目链接→Codeforces Problem 712C Memory and De-Evolution
【题意】 现有边长为x的等边三角形,Memory想要将其变成边长为y的等边三角形
现规定Memory每秒能够改变一条边的大小,但要保证改变后的三条边仍能构成一个三角形
问,最少需要多少时间才能变为边长为y的等边三角形
详解请参看我的随笔!下面给出AC代码:
1 #include <bits/stdc++.h>
2 using namespace std;
3 int main()
4 {
5 int s[3];
6 int x,y,i;
7 while(cin>>x>>y)
8 {
9 int ans=0;
10 s[0]=s[1]=s[2]=y;
11 for(i=0;s[0]<x||s[1]<x||s[2]<x;i++)
12 {
13 s[0]=s[1]+s[2]-1;
14 sort(s,s+3);
15 ans++;
16 }
17 cout<<ans<<endl;
18 }
19 return 0;
20 }
E.........................................................................................
题目链接→http://poj.org/problem?id=2352
题意:
就是求每个小星星左小角的星星的个数。坐标按照Y升序,Y相同X升序的顺序给出
由于y轴已经排好序,可以按照x坐标建立一维树状数组
详解请参看我的随笔!下面给出AC代码:
1 #include <stdio.h>
2 #include <string.h>
3 const int MAXN=32005;
4 const int MINN=15005;
5 int tree[MAXN];//下标为横坐标
6 int level[MINN];//下标为等级数
7 /*int lowerbit(int x)
8 {
9 return x&-x;
10 }*/
11 void add(int k,int num)
12 {
13 while(k<=MAXN)
14 {
15 tree[k]+=num;
16 k+=k&-k;
17 }
18 }
19 int read(int k)//1~k的区间和
20 {
21 int sum=0;
22 while(k)
23 {
24 sum+=tree[k];
25 k-=k&-k;
26 }
27 return sum;
28 }
29 int main()
30 {
31 int n,x,y,i;
32 memset(tree,0,sizeof(tree));
33 memset(level,0,sizeof(level));
34 while(scanf("%d",&n)!=EOF)
35 {
36 for(i=1;i<=n;i++)
37 {
38 scanf("%d%d",&x,&y);
39 int temp=read(x+1);//加入x+1,是为了避免0,X是可能为0的
40 level[temp]++;
41 add(x+1,1);
42 }
43 for(i=0;i<n;i++)
44 printf("%dn",level[i]);
45 }
46 return 0;
47 }
- VList data structures in C#
- 编程思想 之「语言导论」
- 编程思想 之「对象漫谈」
- Github 项目推荐 | TensorFlow 概率推理工具集 —— probability
- Github 项目推荐 | 用于 C/C++、Java、Matlab/Octave 的特征选择工具箱
- Mercari Price 比赛分享 —— 语言不仅是算法和公式而已
- Github 项目推荐 | GAN 的 Keras 实现案例集合 —— Keras-GAN
- Github 项目推荐 | 微软开源 MMdnn,模型可在多框架间转换
- 半自动化运维之动态添加数据文件(一) (r5笔记第55天)
- 半自动化运维之动态添加数据文件(二) (r5笔记第56天)
- 11g Active DataGuard初探(r5笔记第54天)
- Github 项目推荐 | 用于构建端对端对话系统和训练聊天机器人的开源库 —— DeepPavlov
- 我身边的一些数据库事故 (r5笔记第52天)
- 一个清理脚本的改进思路(r5笔记第51天)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 代码整洁的 JavaScript
- Script 标记的 defer 和 async 属性说明
- 百行代码轻松爬取视频
- WebLogic coherence UniversalExtractor 反序列化 (CVE-2020-14645) 漏洞分析
- equals和hashCode你学会了么?
- 15 张精美动图全面讲解 CORS
- Rasa X 安装之Docker Compose 模式
- 使用Vue写个首页,原来这么简单
- 5分钟内搭建你的第一个Python聊天机器人
- dotnet 获取进程命令行参数的工具
- SpringFramework之ViewResolver优化
- 搭建maven私服上传并使用Jar包
- Prometheus监控Minio集群
- Spring Boot 相关漏洞学习资料
- 口令爆破之突破前端JS加密