gravity

C/C++ 第八周串和数组 (一)顺序串算法 项目2—(二)

爱⌒轻易说出口 提交于 2020-04-06 09:38:16
/* *Copyright(c)2017,烟台大学计算机学院 *All right reserved. *文件名:main.cpp sqqueue.h sqqueue.cpp *作者:黄士胜 *完成日期:2017年11月1日 *版本号:v1.0 * *问题描述: 采用顺序存储的方式存储串,实现下列算法并测试。 *输入描述:无 *程序输出:见运行结果截图 */ 问题二 (2)试编写算法,实现将已知字符串所有字符倒过来重新排列。如ABCDEF改为FEDCBA: 主函数: #include <stdio.h> #include "../sqString.h" void Invert(SqString &s) { int i; char temp; for (i=0; i<s.length/2; i++) { temp = s.data[i]; s.data[i]=s.data[s.length-i-1]; s.data[s.length-i-1] = temp; } } int main() { SqString s; StrAssign(s, "abcdefg"); Invert(s); DispStr(s); return 0; } 运行截图: 学习心得: 实现将已知字符串所有字符倒过来重新排列,强化了我对串的知识的更深的了解。 点赞 收藏 分享 文章举报 不会游泳的咸鱼 发布了34

codeForces 535C.Tavas and Karafs(二分+思维)

感情迁移 提交于 2020-04-06 07:49:34
题意: 给你一个首项为A,公差为B的等差数列,再给你一个N代表有N次询问,每次询问会有三个值L,T,M代表在经过T次操作之后以L为左端点的等于0的串最长能有多长。 操作为每次使任意M个不为0的数字的值都减一。 思路: 首先我们应该明确一点,对于这个为零的区间[L,R]的区间和一定小于等于T*M。 对于每次询问我们可以通过枚举右端点来找到答案,因为 是无法避免的,如果再去枚举右端点R 会超时,我们可以发现随着右端点的扩大,[L,R]区间和也会变大所以,我们可以通过二分来寻找右端点,这样复杂度为 是可以的,那么二分的下限好确定为L,上限应该是什么呢?由于这个等差序列是无限的,所以我们无法从数据范围中找到一个右端点的上限。右端点的值一定小于等于操作次数T,即 所以右端点R的上限也有了,直接进行二分找一个右端点的上界就行了,如果再此范围内,存在上界答案就是上界减一,不存在上界答案就是(T - A) / B + 1。 #include<bits/stdc++.h> using namespace std; long long A,B,N,L,T,M; long long get_a(long long n)//得到第N项 { return A + (n - 1) * B; } long long check(long long R)//得到左端点到右端点的和 { return (get_a

kafka和storm集群的环境安装

我们两清 提交于 2020-04-06 05:55:04
前言 storm和kafka集群安装是没有必然联系的,我将这两个写在一起,是因为他们都是由zookeeper进行管理的,也都依赖于JDK的环境,为了不重复再写一遍配置,所以我将这两个写在一起。若只需一个,只需挑选自己选择的阅读即可。 这两者的依赖如下: Storm集群 :JDK1.8 , Zookeeper3.4,Storm1.1.1; Kafa集群 : JDK1.8 ,Zookeeper3.4 ,Kafka2.12; 说明 : Storm1.0 和Kafka2.0对JDK要求是1.7以上,Zookeeper3.0以上。 下载地址: Zookeeper: https://zookeeper.apache.org/releases.html#download Storm: http://storm.apache.org/downloads.html Kafka: http://kafka.apache.org/downloads JDK安装 每台机器都要安装JDK!!! 说明 : 一般CentOS自带了openjdk,但是我们这里使用的是oracle的JDK。所以要写卸载openjdk,然后再安装在oracle下载好的JDK。如果已经卸载,可以跳过此步骤。 首先输入 java -version 查看是否安装了JDK,如果安装了,但版本不适合的话,就卸载 输入 rpm -qa |

C/C++ 第八周串和数组 (一)对称矩阵压缩存储的实现与应用 项目3—(2)

允我心安 提交于 2020-04-06 05:49:46
/* *Copyright(c)2017,烟台大学计算机学院 *All right reserved. *文件名:main.cpp sqqueue.h sqqueue.cpp *作者:黄士胜 *完成日期:2017年11月11日 *版本号:v1.0 * *问题描述: 用压缩的方式存储对称矩阵,实现下面的操作并测试 *输入描述:无 *程序输出:见运行结果截图 */ 对项目三的延伸,学出对上,下三角矩阵,对角矩阵的压缩存储结构,以及相关的基本运算的实现。 相关代码如下: #include <stdio.h> #define N 4 #define M 10 int value(int a[],int i,int j) { if (i>=j) return a[(i*(i+1))/2+j]; else return a[(j*(j+1))/2+i]; } void madd(int a[],int b[],int c[][N]) { int i,j; for (i=0; i<N; i++) for (j=0; j<N; j++) c[i][j]=value(a,i,j)+value(b,i,j); } void mult(int a[],int b[],int c[][N]) { int i,j,k,s; for (i=0; i<N; i++) for (j=0; j<N; j++) {

ElasticSearch2.4.2安装search-guard插件

主宰稳场 提交于 2020-04-06 03:51:24
(1)环境; elasticsearch 2.4.2 (2):github上分支没有2.4.x版本的分支,笔者一度找了好久才找到下面一个版本关系对应表 elasticsearch与search-guard以及search-guard-ssl: (3): 进入elasticsearch的bin目录,执行命令安装search-guard ./plugin install -b com.floragunn/search-guard-2/2.4.2.10 注:当es的版本大于2.2时,安装过程中可能会有WARNING提示,这个不影响。其它ES版本,请对照表格替换命令行后的版本号即可。 (4):安装 search-guard-ssl ./plugin install -b com.floragunn/search-guard-ssl/2.4.2.10 (5)安装完成后,会在plugins目录中生成两个目录 (6):下载 searchguard-ssl 的包,里面包含自动创建证书的脚本: wget https://github.com/floragunncom/search-guard-ssl/archive/v2.4.2.19.zip unzip v2.4.2.19.zip cd search-guard-ssl-2.4.2.19/example-pki-scripts/ 编辑脚本 vim

C/C++ 语言中体验复杂度:汉诺塔问题(2)

眉间皱痕 提交于 2020-04-05 22:52:05
/* *Copyright (c) 2017, 烟台大学计算机学院 *All rights reserved. *文件名称:main.cpp *作 者:黄士胜 *完成日期:2017年9月13日 *版 本 号:v1.0 * *问题描述:汉诺塔问题 *输入描述:盘子数目为 4 8 16 20 24 *程序输出:见截屏 */ #include <stdio.h> #define discCount 24 long move(int, char, char,char); int main() { long count; count=move(discCount,'A','B','C'); printf("%d个盘子需要移动%ld次\n", discCount, count); return 0; } long move(int n, char A, char B,char C) { long c1,c2; if(n==1) return 1; else { c1=move(n-1,A,C,B); c2=move(n-1,B,A,C); return c1+c2+1; } } #include <stdio.h> #define discCount 20 long move(int, char, char,char); int main() { long count; count=move

C/C++ 第八周串和数组 (一)顺序串算法 项目2—(四)

眉间皱痕 提交于 2020-04-05 21:02:43
/* *Copyright(c)2017,烟台大学计算机学院 *All right reserved. *文件名:main.cpp sqqueue.h sqqueue.cpp *作者:黄士胜 *完成日期:2017年11月1日 *版本号:v1.0 * *问题描述: 采用顺序存储的方式存储串,实现下列算法并测试。 *输入描述:无 *程序输出:见运行结果截图 */ 问题描述: (四) 有两个串s1和s2,设计一个算法求一个这样的串,该串中的字符是s1和s2中公共字符, 所谓公共子串,是由在s1中有,且在s2中也有的字符构成的字符。例s1为”message”,s2为”agent”,得到的公共子串是”eage”: 主函数: #include <stdio.h> #include "../sqString.h" SqString CommChar(SqString s1,SqString s2) { SqString s3; int i,j,k=0; for (i=0; i<s1.length; i++) { for (j=0; j<s2.length; j++) if (s2.data[j]==s1.data[i]) break; if (j<s2.length) //s1.data[i]是公共字符 { s3.data[k]=s1.data[i]; k++; } } s3.length=k;

ACdream ~ 1066 ~ Bet(数学 or 二分+精度)

我们两清 提交于 2020-04-05 19:56:26
思路: 因为我们要使最坏的情况获得钱最多,肯定要让不管哪一个赢都能得到一样的钱V。在总钱数X一定的情况下,如果有某个赢之后获得的钱大于V,那么肯定有某个赢之后的钱少于V,如果是其他都输了而这个赢钱少的赢了那么得到的钱就比V少。题目中问的就是最坏情况下的最大收益(最大化平均值),所以我们应该让不管哪个赢获得钱都一样的钱V。那么怎么求V呢?有两种思路: ①我们可以二分这个数字,然后通过判断在回报都为V时的投入跟实际总钱数X的关系确定如何缩小区间。 ②其实我们可以发现是有规律的,假设平均回报为v,每个赔率为a[i],总钱数为X,我们可以得到下面这个式子 化简得 所以 X跟a[1~n]都已知,所以答案V可以求出来,然后保留个两位小数输出就可以了。 公式法: #include<bits/stdc++.h> using namespace std; int main() { int n; double a[105],x,v; while(~scanf("%d",&n)) { for(int i = 0; i < n; i++) scanf("%lf",&a[i]); scanf("%lf",&x); v = 0.0; for(int i = 0; i < n; i++) v += 1 / a[i]; printf("%.2lf\n",x / v); } return 0; } 二分法:

64位Win7下配置VS2010和Opencv3.0

倾然丶 夕夏残阳落幕 提交于 2020-04-05 18:12:00
64 位 Win7 下配置 VS2010 和 Opencv3.0 1、下载 VS2010 并安装,地址: http://pan.baidu.com/s/1gdAWLTD 2、下载 Opencv3.0 并安装,地址: http://opencv.org/ 3、配置 Opencv 的环境变量,在计算机—属性—高级系统设置—环境变量— path 中添加“ D:\opencv\build\x64\vc12\bin; ”分号与前一个环境变量进行分隔, x64 是 64 位系统, 32 位系统为 x86 , vc12 也可换,自己根据情况判断选择 4、打开 VS2010 ,新建一个项目,在项目—属性— VC++ 目录中配置包含目录、库目录,添加内容为: 包含目录: D:\opencv\build\include D:\opencv\build\include\opencv D:\opencv\build\include\opencv2 库目录: D:\opencv\build\x64\vc12\lib x64 和 vc12 根据情况调整,与 Opencv 配置环境变量情况类似。 在链接器—输入—附加依赖项中,添加 opencv_ts300.lib opencv_world300.lib opencv_ts300d.lib opencv_world300d.lib 每个新项目都要如此配置。 5

C/C++ 第八周串和数组 (一)顺序串算法 项目2—(一)

只愿长相守 提交于 2020-04-05 17:02:59
/* *Copyright(c)2017,烟台大学计算机学院 *All right reserved. *文件名:main.cpp sqqueue.h sqqueue.cpp *作者:黄士胜 *完成日期:2017年11月1日 *版本号:v1.0 * *问题描述: 采用顺序存储的方式存储串,实现下列算法并测试。 *输入描述:无 *程序输出:见运行结果截图 */ (一) 串的替换 主函数: #include <stdio.h> #include "../sqstring.h" void Trans(SqString &s, char c1, char c2) { int i; for (i=0; i<s.length; i++) if (s.data[i]==c1) s.data[i]=c2; } int main() { SqString s; StrAssign(s, "messages"); printf("替换前:"); DispStr(s); Trans(s, 'e', 'a'); printf("替换后:"); DispStr(s); return 0; } 运行结果: 学后总结: 了解了简单的串的替换,懂得了串的基本知识。 点赞 收藏 分享 文章举报 不会游泳的咸鱼 发布了34 篇原创文章 · 获赞 9 · 访问量 1万+ 私信 关注 来源: oschina 链接: