#算法笔记01

一 :把数个相同的数字组合成一个整数,如6个6转换成666666这个整数。

        

#include<iostream>
using namespace std;
int main() {int DA = 6;int counta = 3;int PA = 0;int tempa = DA;for (int i = 0; i < counta; i++) {for (int j = 0; j < i; j++) {tempa *= 10;}PA += tempa;tempa = DA;}cout << PA;return 0;
}
//运行结果
666

      二:定点消除字符串中的特定字符,比如2,000,536,456中的逗号

#include<iostream>
#include<string>
using namespace std;
int main()
{
string A;
cin>>A;
for(int i=0;i<A.length();i++)
{if(A[i]==','){A.erase(A.begin()+i);}
}
cout<<A<<endl;
return 0
}
//输入2,333,333
2333333

三:vector中的push_back()

如果要进行多次输入,则需要对vector进行clear,不然的话,push_back()函数会在原有的vector上继续压入数据,导致无法AC。具体错误详见末尾例题:“还剩多少棵树”的错误示范。

四:对字符串遍历

不同于c,c++可以很方便的对字符串进行操作,不需要像c一样需要把字符串存在字符数组里面用数组下标访问。c++引入了string类。(日后可以考虑一下怎么用c语言翻译一下这个类)

语法:

//只是语法,并不严格对每个变量给出声明
for( char c1:str){}

str 是string类型的字符串,该代码的意思就是在str字符串中从头开始一个字符一个字符的,把逐个个字符依次赋值给c1。c1和str中间是“:”冒号。

另外一个方法是:

for(char &c1:str){}

这种方法的好处是直接引用了str中的字符,不需要复制,所以相比于第一种要快很多。

详情见链接:遍历string时 使用for(char& c : s) for(char c : s) 的区别_for(cha c :in)_Wanderer001的博客-CSDN博客

五:如果算法题中没有说明到底会输入多种数据,或者说数据输入结束条件不明确要怎么办?

一般来说,加一个while循环就行,详情见文章末尾"A+B"错误示范和改错


while(cin>>A>B)
{
;
}

六:sort函数

不知道算法比赛中能不能使用sort函数。c++的algorithm类中,提供了自动排序的方法。具体使用方法在查algorithm的时候再研究。在文章末尾“剪刀锤子布”的时候用到了该函数(这部分代码是chatgpt写的)。

算法例题

一:还剩多少树

 错误样例:

 错因:在输入第二组数据的时候,没有清空ni。

#include <iostream>
#include <vector> 
using namespace std;
int main(int argc, char** argv) {vector<int> ni;
jump1:	int n = 0;cin >> n;for (int i = 0; i <= n; i++) {ni.push_back(1);}ni[n] = 1;int m = 0;cin >> m;for (int i = 0; i < m; i++) {int li, ri;cin >> li >> ri;for (int i = li; i <= ri; i++) {ni[i] = 0;}}int sum = 0;for (int i = 0; i <= n; i++) {if (ni[i] != 0) {sum++;}}if (n == 0) {exit(0);}cout << sum << endl;if (n != 0) {goto jump1;}return 0;
}
//错误代码运行结果
4 2
1 2
0 2
2
11 2
1 5
4 7
4
0 0

改正:

#include <iostream>
#include <vector> 
using namespace std;int main(int argc, char** argv) {vector<int> ni;
jump1:	int n = 0;cin >> n;ni.clear();for (int i = 0; i <= n; i++) {ni.push_back(1);}ni[n] = 1;int m = 0;cin >> m;for (int i = 0; i < m; i++) {int li, ri;cin >> li >> ri;for (int i = li; i <= ri; i++) {ni[i] = 0;}}int sum = 0;for (int i = 0; i <= n; i++) {if (ni[i] != 0) {sum++;}}if (n == 0) {exit(0);}cout << sum << endl;if (n != 0) {goto jump1;}return 0;
}
//运行结果
4 2
1 2
0 2
2
11 2
1 5
4 7
5
0 0

二:A+B

 错误样例:

错因:该代码语法逻辑都正确,但是无法处理多组数据。所以无法AC。

#include <iostream>
#include <string>
using namespace std;
int main(int argc, char** argv) {string A, B;for (int i = 0; i < 100; i++) {cin >> A >> B;for (int i = 0; i < A.length(); i++) {if (A[i] == ',') {A.erase(A.begin() + i);}}for (int i = 0; i < B.length(); i++) {if (B[i] == ','){B.erase(B.begin() + i);}}int A_ = stoi(A);int B_ = stoi(B);cout << A_ + B_ << endl;}return 0;
}

改正:

#include <iostream>
#include <string>
using namespace std;
int main(int argc, char** argv) {string A, B;while (cin >> A >> B) {// 		cin >> A >> B;for (int i = 0; i < A.length(); i++) {if (A[i] == ',') {A.erase(A.begin() + i);}}for (int i = 0; i < B.length(); i++) {if (B[i] == ','){B.erase(B.begin() + i);}}int A_ = stoi(A);int B_ = stoi(B);cout << A_ + B_ << endl;}return 0;
}

三:剪刀锤子布

代码无误,仅作sort的一个示例。

#include<iostream>
#include<vector>
#include <algorithm>
using namespace std;
int main() {int N;cin >> N;int scora = 0, scord = 0, scorT = 0;int winAC = 0, winAB = 0, winAJ = 0;int winDC = 0, winDB = 0, winDJ = 0;for (int i = 0; i < N; i++) {char A, D;cin >> A >> D;switch (A){case 'C':switch (D) {case 'C':scorT++; break;case 'J':scora++; winAC++; break;case 'B':scord++; winDB++; break;}break;case 'J':switch (D){case 'C':scord++; winDC++; break;case 'J':scorT++; break;case 'B':scora++; winAJ++; break;}break;case 'B':switch (D) {case 'C':scora++; winAB++; break;case 'J':scord++; winDJ++; break;case 'B':scorT++; break;}break;}}cout << scora << " " << scorT <<" "<< scord << endl;cout << scord << " " << scorT <<" "<< scora << endl;vector<char> maxwingestureA;vector<char> maxwingestureD;if (winAC >= winAB && winAC >= winAJ) {maxwingestureA.push_back('C');}if (winAB >= winAC && winAB >= winAJ) {maxwingestureA.push_back('B');}if (winAJ >= winAB && winAJ >= winAC) {maxwingestureA.push_back('J');}sort(maxwingestureA.begin(), maxwingestureA.end());if (winDC >= winDB && winDC >= winDJ) {maxwingestureD.push_back('C');}if (winDB >= winDC && winDB >= winDJ) {maxwingestureD.push_back('B');}if (winDJ >= winDB && winDJ >= winDC) {maxwingestureD.push_back('J');}sort(maxwingestureD.begin(), maxwingestureD.end());cout << maxwingestureA[0] << " " << maxwingestureD[0];return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/38417.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何俘获一个 IT 男的心,让他成为男友然后变成老公

1、IT男十男七闷骚。内心已热情如火&#xff0c;表面还爱答不理。请无视他的冷淡&#xff0c;忽略他的沉默&#xff0c;撕下他的假面&#xff01; 2、IT男十男七得瑟&#xff0c;自负于对互联网新产品的灵敏嗅觉&#xff0c;满口用户体验&#xff0c;请配合他的小小虚荣&…

4招教你们怎么做海报,想要宣传推广就来这

今天分享4招海报二维码的网站软件给你们&#xff0c;自己动手就能制作专属的海报广告哦&#xff01; 1.二维彩虹 这个网站可以制作动态或静态二维码&#xff0c;我们可通过输入网址、电子名片、文件、音视频等方式生成二维码。同样&#xff0c;在制作二维码之前&#xff0c;我…

SpringCloud Gateway Netty Websocket实现高性能聊天系统集群方案

目录 一、问题引出 二、架构图 三、实现方式 一、问题引出 在IM分布式系统的构建中遇到的问题&#xff1a; Netty服务器通过客户端的连接信息来生成对应的Channel&#xff08;可以理解为长连接的用户信息&#xff09;&#xff0c;Netty服务器通过Channel来进行消息转发。于…

oracle 锁表是为什么,怎么解决

1、锁表发生在insert update 、delete 中 2、锁表的原理是 数据库使用独占式封锁机制&#xff0c;当执行上面的语句时&#xff0c;对表进行锁住&#xff0c;直到发生commite 或者 回滚 或者退出数据库用户 3、锁表的原因 第一、 A程序执行了对 tableA 的 insert &#xff…

oracle 查询事务锁,Oracle中事务锁(锁住的表、锁住的会话)

今天又学会一招&#xff0c;查看Oracle数据库中由于会话非正常退出而导致的事务锁&#xff1a; 1.查看锁住的表 SELECT b.owner,b.object_name,a.sessi 今天又学会一招&#xff0c;查看Oracle数据库中由于会话非正常退出而导致的事务锁&#xff1a; 1.查看锁住的表 SELECT b.ow…

PG 锁类型、级别、死锁解决

文章目录 锁类型ACCESS SHAREROW SHAREROW EXCLUSIVESHARE UPDATE EXCLUSIVESHARESHARE ROW EXCLUSIVEEXCLUSIVEACCESS EXCLUSIVE 死锁查询死锁处理死锁测试Session ASession BSession CSession DSession E原因 结论 锁类型 ACCESS SHARE 1、SELECT产生的锁 2、与ACCESS EXCLU…

Oracle死锁问题: enq: TX - row lock contention

前言 这篇文章也是记录近期遇到的问题以及从中学到的知识 &#xff0c;近期一直在救火&#xff0c;有些问题自认为还是挺有代表性的&#xff0c;有兴趣的话再继续向下看 问题现象 线上反馈&#xff0c;执行批量处理EXCEL数据时&#xff0c;系统一直卡在进度滚动条界面。处理任务…

Oracle 出现锁表了,如何处理

出现锁表的情况很多种&#xff0c;但是大部分情况都是更新表&#xff0c;然后并没有提交&#xff0c;导致数据库的表被锁的情况。处理方式也比较简单&#xff0c;如下&#xff1a; 查询是否有表锁&#xff1a; select count(1) count from v$locked_object; 如果查询出来的数量…

短文重复性检测综述,谷歌文本重复性检测: Detect duplicate content like Google

文本重复性检测一直是NLP等领域非常重要的一项研究工作&#xff0c;今天 #paperClub# 给大家翻译一下"Detect duplicate content like Google"。 重复的内容是影响网站排名的最重要的负面因素之一。这就是为什么近重复检测 (NDD) 在任何 SEO 应执行的任务之间占据重要…

词云图:统计一个文本中词出现的次数。

在进行词云图的创作时&#xff0c;统计词语的出现频率是非常有意义的&#xff0c;可以依据词语频率的高低来判断词云图是否准确。选择小说中的某一章节&#xff0c;利用程序统计词语出现的次数。 程序如下&#xff1a; # -*- codeing utf-8 -*- # Time : 2021/12/12 1:21 # A…

chatgpt赋能python:Python词语分类

Python词语分类 Python是一种高级编程语言&#xff0c;它有很多词语&#xff0c;其中一些可能令你在学习Python时感到困惑。在这篇文章中&#xff0c;我们将探讨Python词语的分类&#xff0c;以帮助您更好地理解Python编程。 变量与数据类型 在Python中&#xff0c;变量用于…

DaVinci:Camera Raw(ARRI)

本文主要介绍 ARRI 的 Raw 格式素材相关的 Camera Raw 参数。 解码质量 Decode Quality 解码质量决定了图像解拜耳之后所呈现的素质&#xff0c;也与最终的输出息息相关。 默认为“使用项目设置” Use project setting&#xff0c;表示使用项目设置对话框中的“Camera RAW”解码…

DaVinci_Resolve_Studio_18.1.1达芬奇图文安装教程及下载

DaVinci Resolve最大的特点是&#xff0c;将剪辑、调色、视觉特效、动态图形和音频后期制作融于一身&#xff0c;它采用美观新颖的界面设计&#xff0c;易学易用&#xff0c;能让新手用户快速上手操作&#xff0c;还能提供专业人士需要的强大性能。 DaVinci Resolve 18是一次重…

davinci使用笔记(1)

第一节主要介绍达芬奇17的各个界面以及第一次使用的注意事项和主要设置。 这是达芬奇打开出现的界面&#xff0c;如图这是一个项目工程界面&#xff0c;我们可以在这里新建新的项目和和对项目进行分类&#xff0c;在这个界面右下角有三个按钮&#xff0c;其中第二个按钮是新建文…

达芬奇调色DaVinci Resolve Studio18v18.1.4 2023中文版更新发布,支持intel/M1/M2芯片

达芬奇是世界上唯一在单一软件环境中进行剪辑、调色、视觉效果、图形和音频后期处理的解决方案。其现代、时尚的界面简单直观&#xff0c;对于新手和有经验的用户来说都足够了。 DaVinci Resolve 无需掌握多个应用程序或在不同系统之间切换&#xff0c;极大地简化了您的创作过…

TI DaVinci(达芬奇)入门

&#xff08;转载来自 德州仪器半导体技术&#xff08;上海&#xff09;有限公司 通用DSP 技术应用工程师 崔晶 德州仪器&#xff08;TI&#xff09;的第一颗达芬奇&#xff08;DaVinci&#xff09;芯片&#xff08;处理器&#xff09;DM6446已经问世快三年了。继DM644x之后&am…

davinci 达芬奇BI工具

Davinci 是一个 DVAAS&#xff08;Data Visualization as a Service&#xff09;平台解决方案&#xff0c;面向业务人员/数据工程师/数据分析师/数据科学家&#xff0c;致力于提供一站式数据可视化解决方案。既可作为公有云/私有云独立部署使用&#xff0c;也可作为可视化插件集…

ChatGPT3.0 text-davinci-003 表现诡异

最近想试用一下通过API调用ChatGPT&#xff0c;在测试 gpt-3.5-turbo 的时候遇到了“openai.error.InvalidRequestError: This is not a chat model and thus not supported in the v1/chat/completions endpoint. Did you mean to use v1/completions? ”的问题。 所以该尝试…

中国元宇宙科技有限公司+《星云虚境》+AI虚拟数字人+chatgpt

随着人工智能、虚拟现实等技术的不断发展&#xff0c;中国元宇宙科技有限公司计划推出一款名为《星云虚境》的虚拟数字人平台。该平台将采用AIchatgpt等技术&#xff0c;为用户提供更加真实、智能的虚拟人体交互体验&#xff0c;为未来的数字化生活带来新的可能性。 未来&…

辅助现实?aR?AR?进入元宇宙,这个概念得搞懂

1 什么是辅助现实&#xff1f; 辅助现实&#xff08;aR&#xff0c;assisted Reality&#xff09;这个词在最近的一些AR眼镜的新品发布会频繁出现。那这辅助现实又是什么&#xff0c;与增强现实之间有什么关系呢&#xff1f; 其实&#xff0c;辅助现实可以说是增强现实里面的一…