竞赛
考级
def min_swaps_to_multiple_of_4(n): s = str(n) n_len = len(s) 处理输入输出 t = int(input()) for _ in range(t): n = input().strip() print(min_swaps_to_multiple_of_4(n))
谁来教我c++
C++ 的传奇历程:从实验室走向万亿级产业的编程语言之王 ** 在编程界的璀璨星河中,C++ 犹如一颗恒星,自诞生以来便持续散发着耀眼的光芒。这门由丹麦计算机科学家比雅尼・斯特劳斯特鲁普(Bjarne Stroustrup)于 20 世纪 80 年代初创造的编程语言,不仅深刻改变了软件开发的格局,更在全球科技产业中留下了不可磨灭的印记。从操作系统内核到游戏引擎,从金融交易系统到航天航空软件,C++ 以其独特的魅力和强大的性能,成为无数程序员的挚爱和产业界的中流砥柱。 诞生:在 C 语言的土壤上绽放新花 20 世纪 70 年代末,贝尔实验室正处于计算机科学研究的黄金时代。年轻的研究员比雅尼・斯特劳斯特鲁普在从事大型数值计算项目时,深切感受到了当时编程语言的局限性。他所使用的 Simula 语言虽然支持面向对象编程思想,能够很好地模拟复杂系统,但运行效率却难以满足大规模计算的需求;而 C 语言虽然执行效率极高,且能直接操作硬件,却缺乏对复杂数据结构和抽象概念的支持。 这种 “鱼与熊掌不可兼得” 的困境,激发了斯特劳斯特鲁普的创新灵感。他萌生了一个大胆的想法:能否在 C 语言的基础上,融入 Simula 语言的面向对象特性,创造出一门既高效又灵活的新编程语言?1979 年,这个想法正式落地为 “C with Classes” 项目,这便是 C++ 的雏形。 在最初的设计中,斯特劳斯特鲁普坚持了一个核心原则:不牺牲 C 语言的性能和灵活性。他巧妙地将类、继承、多态等面向对象概念作为 C 语言的扩展,而非对其进行颠覆性改造。这种 “渐进式增强” 的设计思路,使得熟悉 C 语言的程序员能够轻松过渡到新语言,同时也保证了新语言与 C 语言的兼容性。 1983 年,这门语言正式被命名为 C++。其中,“” 是 C 语言中的自增运算符,象征着它是 C 语言的超越和进化。1985 年,《C Programming Language》一书的出版,标志着 C++ 作为一门独立编程语言的正式诞生。这本书不仅详细阐述了 C++ 的语法和特性,更奠定了其在编程界的地位。 崛起:在技术浪潮中站稳脚跟 20 世纪 80 年代末至 90 年代初,是 C++ 快速崛起的黄金时期。随着计算机硬件的飞速发展和软件复杂度的不断提升,业界对高性能、高抽象能力编程语言的需求日益迫切,C++ 恰好满足了这一需求。 1989 年,C++ 2.0 版本发布,引入了模板(Templates)和异常处理(Exception Handling)等关键特性。模板的出现使得代码复用达到了新的高度,程序员可以编写通用的数据结构和算法,大大提高了开发效率;异常处理则为程序错误处理提供了标准化的机制,增强了程序的健壮性。这些特性的加入,使得 C++ 在大型软件项目开发中展现出了巨大的优势。 在这一时期,C++ 在多个领域得到了广泛应用。在操作系统领域,微软的 Windows NT 操作系统部分采用 C++ 开发,充分利用了其面向对象特性和高性能,为 Windows 系统的稳定性和扩展性奠定了基础;在数据库领域,Oracle 等大型数据库管理系统也大量使用 C++,以应对海量数据处理的高性能需求;在游戏开发领域,id Software 公司的《毁灭战士》(Doom)等经典游戏采用 C++ 开发,展现了其在图形渲染和实时交互方面的强大能力。 1998 年,ISO(国际标准化组织)正式发布了 C++ 的第一个国际标准,即 C98。这一标准的制定,使得 C 的语法和特性得到了统一和规范,增强了不同编译器之间的兼容性,进一步推动了 C++ 的普及和应用。此后,C++ 标准不断更新,2003 年发布的 C03 主要对 C98 进行了一些修正和完善。 挑战与变革:在竞争中不断进化 进入 21 世纪,编程语言领域呈现出百花齐放的态势。Java、C# 等新兴语言凭借其简洁的语法、强大的库支持和良好的跨平台性,迅速抢占了市场份额;Python 等脚本语言也以其易用性在数据分析、人工智能等领域崭露头角。面对这些挑战,C++ 并没有固步自封,而是通过不断变革和创新,保持了其在编程界的重要地位。 2011 年,C11 标准的发布堪称 C 发展史上的一次重大变革。这一标准引入了大量新特性,如自动类型推断(auto)、范围 for 循环(range-based for loop)、lambda 表达式、智能指针(Smart Pointers)等。这些特性极大地提升了 C++ 的编程效率和代码可读性,使得 C++ 在保持高性能的同时,更加贴近现代编程范式。 智能指针的引入是 C11 中最具影响力的特性之一。它有效地解决了 C 中长期存在的内存管理问题,减少了内存泄漏的风险,让程序员能够更专注于业务逻辑的实现而非底层内存操作。lambda 表达式则为函数式编程提供了支持,使得代码更加简洁、灵活,特别适合用于算法和并发编程中。 2014 年,C14 标准发布,在 C11 的基础上进行了进一步的完善和扩展,增加了更多实用的特性,如泛型 lambda、返回类型推导等,进一步提升了 C++ 的编程体验。2017 年,C17 标准发布,引入了并行算法、文件系统库等新特性,更好地适应了多核处理器和大数据时代的需求。 在这一时期,C 在一些新兴领域也展现出了强大的生命力。在高性能计算领域,C++ 凭借其接近机器语言的执行效率,成为科学计算和数值模拟的首选语言之一;在嵌入式系统领域,C++ 的低资源消耗和高实时性使其在汽车电子、工业控制等领域得到了广泛应用;在人工智能领域,虽然 Python 是主流的开发语言,但许多底层的深度学习框架,如 TensorFlow、PyTorch 等,其核心部分仍采用 C++ 开发,以保证计算效率。 现状与未来:持续闪耀的编程之星 如今,C++ 已经成为一门拥有庞大用户群体和丰富生态系统的成熟编程语言。据 TIOBE 编程语言排行榜显示,C++ 常年位居前三,其受欢迎程度可见一斑。全球范围内,众多大型科技公司和软件项目都在使用 C++,如谷歌的 Chrome 浏览器、苹果的 macOS 和 iOS 操作系统、亚马逊的电商平台等。 C++ 的成功并非偶然,其独特的优势使其在众多编程语言中脱颖而出。首先,高性能是 C++ 的核心竞争力。它允许直接操作内存和硬件,能够充分发挥计算机的性能潜力,这在对性能要求极高的领域,如游戏引擎、实时金融交易系统等,是其他语言无法替代的。 其次,C++ 具有强大的抽象能力和灵活性。它支持面向对象编程、泛型编程、函数式编程等多种编程范式,程序员可以根据项目需求选择合适的编程方式,提高代码的复用性和可维护性。同时,C++ 与 C 语言的兼容性使得它可以轻松调用大量现有的 C 语言库,降低了开发成本。 再者,C++ 拥有一个活跃的社区和丰富的开源生态。全球范围内的开发者不断为 C++ 贡献各种库和工具,如 Boost 库、STL(标准模板库)等,这些库涵盖了从数据结构、算法到网络编程、图形界面等各个方面,为 C++ 开发提供了强大的支持。 展望未来,C++ 依然拥有广阔的发展前景。随着 5G、人工智能、物联网等新兴技术的不断发展,对高性能、低延迟编程语言的需求将更加迫切,C++ 在这些领域将继续发挥重要作用。同时,C++ 标准也在不断更新和完善,C20 标准引入了模块(Modules)、协程(Coroutines)等重大特性,进一步提升了 C 的模块化程度和并发编程能力;未来的 C23、C26 等标准也将继续引入新的特性,以适应不断变化的技术需求。 当然,C++ 也面临着一些挑战。其语法相对复杂,学习曲线陡峭,对于初学者来说不太友好;在一些快速开发的场景中,其开发效率可能不如一些新兴语言。但这些挑战并没有掩盖 C++ 的光芒,相反,它们促使 C++ 社区不断努力,通过简化语法、提供更好的工具和库等方式,降低 C++ 的使用门槛。 从实验室中的一个创新想法,到如今支撑起万亿级科技产业的编程语言,C++ 的发展历程充满了传奇色彩。它见证了计算机科学的飞速发展,也在这一过程中不断进化和完善。无论是过去、现在还是未来,C++ 都将是编程界一颗持续闪耀的明星,为全球科技进步贡献着自己的力量。对于每一位程序员来说,学习和掌握 C++ 不仅是提升自身技能的途径,更是对编程历史和文化的一种传承。
坐看云卷云舒,千纸鹤的折痕在阳光下叠成阴影。 我到底希望着什么?我的目标是什么? 我问我自己。 —————————————————————————————————————————————— 链接描述 先分析题目意思: 有NNN个高度互不相同的猫爬架,其高度pi≤Np_i\le Npi ≤N。 有N−1N-1N−1对猫爬架相邻。 初始时,猫猫可以从任意一个猫爬架经过若干次飞跃到达另一个猫爬架。 现在要在猫爬架上放障碍: 如果猫猫不在被选中的猫爬架上,无事发生。 否则: 猫猫会移动到除去当前猫爬架外,高度最大的且可达的猫爬架上,并选择最短路进行飞跃。 “x猫爬架与y猫爬架可达“的定义:若从x开始,不经过任何障碍物,通过若干次飞跃移动到猫爬架y,则称x与y猫爬架可达。 猫猫初始在高度为NNN的猫爬架上。 求猫在整个训练过程中,飞跃次数之和的最大值。 题目解释: “选择最短路进行飞跃”不是说FLOYD,SPFA,DIJ. 这是树相关的专业用语,即不会在两个点之间来回走,只走一次。 有n−1n-1n−1对猫爬架相邻,可以联想到有n−1n-1n−1条边。 每次从x飞跃到y,都需要保证猫爬架y的高度小于猫爬架x的高度。 子任务分析: 首先能看到,子任务1-12,是一条链。 那么对于一条链,猫要么往左边走,要么往右边走,大概这样: 如果你希望猫往左边走,而此时目标点却在右边,你可以选择在目标点上放置一个障碍物。 然后猫就会往左边走。 也就是说,你可以选择猫往左边走还是往右边边走。 每次你都会有两种选择。 这种感觉有点像归并排序。 归并排序的思想是分治。 那我们就可以考虑,使用分治来解决这个问题。 然后你就可以开始写代码。 代码大概是这样的: 然后发现会有一些超时。 主要超时的原因是找最大值的时候,时间复杂度是O(n)O(n)O(n)。 那么就要考虑如何在短时间内找区间最大值。 先复习一下ST表: 然后将它们合成一下:(注意数据范围变大后要开longlong)
刚学编程一个月!我很喜欢C++!
砸烂蒋老师的小黑屋哈哈哈
一、课堂案例 二、实例 1. 实例1: 循环输出1~N之间的偶数
1943
#include<bits/stdc++.h> using namespace std; string a[5]={"Yes","Yes","Yes","No","No"}; int main(){ srand(time(0)); cout<<a[rand()%5]; return 0; }
芝加哥大叔|ChicaUncle
#include<iostream> using namespace std; int main(){ int a; cin>>a; if(a1){ cout<<"awa"; }else if(a3){ cout<<"pwp"; }else{ cout<<"受着"; } return 0; }
C hina C 白子
洛谷上正解要开long long,建议出个hack
不想AC
这个T2就是,数据比较水。 从理论上而言,我的代码应该拿不了80. 这个题目的切入点是第三种数据。 即“数据保证给出的数中有至少n−1n-1n−1个整数”
114514114514114514114514114514114514114514114514114514114514114514114514114514114514114514114514114514114514114514114514114514114514114514114514114514114514114514114514114514114514114514114514114514114514114514114514114514114514114514114514114514114514114514114514114514114514114514114514114514114514114514114514114514114514114514114514114514114514114514114514114514114514114514114514114514114514114514114514114514114514114514114514114514114514114514114514114514114514114514114514114514114514114514114514114514114514114514114514114514114514114514114514
༺དༀ༒☯世一水☯༒ༀཌ༻
Bruh
复仇者_天之神_凤凰_基岩哥
嘿嘿
™☯一合神星༻དༀ瞳ༀཌ༺
? ? ? ?
༺ཌༀཉི𝓍🐲威龙𝓎༃ༀད
我和“重生之我在火影杀”的小伙伴都在ACGO等你,快用这个专属链接加入我们吧!https://www.acgo.cn/application/1957386526208794624
解斑
难
5-<6>刘烨熙
一、常用数据函数 二、课堂案例 1. 判断整数 2. 小数绝对值 3. POW的返回值类型
对于图的遍历,广搜是其中一种遍历方法之一 例: 给定一个无向图, 第一行输入两个数字n,m,分别代表无向图的顶点数和边数 接下来m行,输入两个数字u,v代表u,v间有一条无向边,保证该图是连通图 遍历所有节点并输出 这里采用了邻接表的方法:
林德铭MCjinyu
ddxf(x)+g(x)=f′(x)+g′(x)2f(x)+g(x)\frac{d}{dx}\sqrt{f(x)+g(x)}=\frac{f'(x)+g'(x)}{2\sqrt{f(x)+g(x)}} dxd f(x)+g(x) =2f(x)+g(x) f′(x)+g′(x) S=∑i=0nai=an+1−1a−1S=\sum_{i=0}^n{a^i}=\frac{a^{n+1}-1}{a-1} S=i=0∑n ai=a−1an+1−1 v=dsdt=s+1⇒h=et−1v=\frac{ds}{dt}=s+1\Rightarrow h=e^t-1 v=dtds =s+1⇒h=et−1
Srobot
一、课堂案例 附录:
M97星云-李灵晟
共5900条