竞赛
考级
有什么想写的就写吧(必回复)
昨天去考GESP了(一级) 我的friend@༺ཌༀ神_C++爱吃皮皮虾ༀད༻也去考了一级 这一级还是比较简单的,只要会for循环,while循环,if分支语句还有基础知识就行了。 8:30就被叫起来了(准确来说是被拖起来的) 抄起早饭和小说(精神食粮)就走了 在车上一边吃早饭一边看小说,在车上看书差点就被紫菜了 看小说看晕了之后就开始极限抱佛脚(之前做模拟题的时候不做编程题,只考了32分) 9:05也是到达考点了 有人是上海信息技术学校考点的吗(评论区说)我是四号楼第四考场313的 我是第一个进去的,紧张死了 10:05开始编程题了 我了个豆,第一题只得了12.5分 我了个豆,第二题编译错误了 完damn了 OS:完了,编程题要死了,前面也是赌神附身 幸好,两道题都满分过了 第一题有两个坑,一个是double,一个是printf 第二题挺简单的,只要会数组和分支就行了 在停车场看见了两个犹太人 然后在他们面前说了一段这个 https://www.bilibili.com/video/BV1bG4y1w7HN/?spm_id_from=333.337.search-card.all.click 大家在评论区发编程题题解 各位观众给个三连吧 顶一顶这个帖子 做到的都是我义父
【函数】实现swap函数 题目描述 输入两个整数,交换两个整数的值,并输出。要求使用函数实现。 提示 数据范围: 两个整数在 int 的表示范围内 样例说明: 交换两数,把(4,6) 的顺序对调,变成(6,4) 输入格式 输入两个整数,以一个空格隔开。 输出格式 输出交换后的两个整数,两数间以一个空格隔开。 样例组输入#1 4 6 样例组输出#1 6 4
> 祝大家新年快乐! 众所周知,在做游戏时,需要用到许多例如: * 清屏 * 改变颜色 * 关机? * 消息提示框 甚至创建窗口应用。 但是,许多人不会,那么我就为大家讲解一下。 > 部分内容来自网络 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ 1.清屏 清除所有输出。 使用system 函数。 需包含cstdlib.h 头文件。 该函数原型:int system(const char *command); ,用于运行cod命令。 参数:const char *command 是传入的系统命令字符串,Windows下传cmd命令、Linux/macOS下传shell命令;传NULL时,用于检查系统是否有可用的命令处理器。 返回值:int 类型,返回值结果依赖操作系统,执行成功通常返回命令的退出状态码,执行失败(如无命令处理器)返回非0值。(其实没什么用) ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ 那么,众所周知,在cmd中,cls 指令用于清屏。 所以,清屏指令为:system(“cls”); 2.设置字体颜色(全屏) 设置背景颜色,字体颜色 仍然使用system 函数。 在cmd中,设置颜色指令: color [前景色代码][背景色代码] 代码表: 0=黑、1=蓝、2=绿、3=浅绿、4=红、5=紫、6=黄、7=白、8=灰、9=淡蓝、A=淡绿、B=淡浅绿、C=淡红、D=淡紫、E=淡黄、F=亮白 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ 事例: 设置背景红色,字体黄色 3.设置标题 在弹出的控制台中,最上方的标题一般默认为C:\…或D:\… 这类,即exe文件地址。 但是,这样看上去非常丑,且无法表达主题。 使用system 设置标题。 cmd代码: 事例: 运行后,标题设置为“这是一个标题吗” 4.等待 使用Sleep 函数,需包含Windows.h 头文件。 函数原型:DWORD Sleep(DWORD dwMilliseconds); 说明:参数dwMilliseconds为休眠毫秒数,返回值固定为 0,无失败返回值。 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ 注意,1000毫秒=1 秒,因此休眠1秒写作:Sleep(1000) . ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ 破100阅读,5赞出窗口应用
请随意写8个数字,比如:[12345678]然后如下操作:∣1256∣⋅∣3478∣−∣1357∣⋅∣2648∣+∣1548∣⋅∣2367∣=16−64+48=0不信你再搞几个数(虚数、实数都可以),按照刚才的方法去算,结果一定是0 请随意写8个数字,比如: \begin{bmatrix}1&2&3&4\\5&6&7&8\end{bmatrix}\\ 然后如下操作:\\ \begin{vmatrix}1&2\\5&6\end{vmatrix}\cdot\begin{vmatrix}3&4\\7&8\end{vmatrix}-\begin{vmatrix}1&3\\5&7\end{vmatrix}\cdot\begin{vmatrix}2&6\\4&8\end{vmatrix}+\begin{vmatrix}1&5\\4&8\end{vmatrix}\cdot\begin{vmatrix}2&3\\6&7\end{vmatrix}\\ =16-64+48\\ =0\\ 不信你再搞几个数(虚数、实数都可以),按照刚才的方法去算,结果一定是0 请随意写8个数字,比如:[15 26 37 48 ]然后如下操作: 15 26 ⋅ 37 48 − 15 37 ⋅ 24 68 + 14 58 ⋅ 26 37 =16−64+48=0不信你再搞几个数(虚数、实数都可以),按照刚才的方法去算,结果一定是0 谁能证明的话我倒立洗头
rt。 @我的世界老玩家(互关,专攻难题)
更新一下帖子:我一个90多人的团队被踢了一大半。制裁团贩子@XBY!!!XBY现在改了名,叫做我不爱作业ID:1735448!!! 制裁全ACGO团贩子!!!
大家好,最近,我将推出一系列C++课程,欢迎参与! 有什么建议或有什么反馈,请务必告诉作者 作者邮箱:wanhr666@qq.com ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ 可熟悉一下头文件:C++常用库函数 提取码:7878 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ 目录 第一章——《C++语言》 第二章——《基础语法》 第三章——《循环语法》
来,大家看看我的今日份迷惑行为大赏: ● 早上起晚了,像打仗一样冲出门,结果发现...今天是周末/居家办公。 ● 中午点外卖,纠结了半小时,最后吃了泡面。 ● 晚上信誓旦旦说要早睡,结果手机一拿,凌晨两点了! ● 遇到老板/老师画大饼,内心已经翻了无数个白眼,脸上还要保持微笑。 我的日常,就是由这些“本可以避免的尴尬”和“无法避免的社死”组成的。 有没有和我一样的“戏精”朋友?评论区集合,让我知道我不是一个人!
涉事人员 证据: 后来,TN HACKER(彻底黑化) 声张正义,踢了此人,感谢! @AC君
C++语言:兼具高效与灵活的通用编程语言 C++是一种静态类型、编译型的通用编程语言,由丹麦计算机科学家本贾尼·斯特劳斯特卢普(Bjarne Stroustrup)于20世纪80年代在贝尔实验室首次设计并实现。它以C语言为基础,保留了C语言的高效、简洁和贴近硬件的特性,同时引入了面向对象编程(OOP)、泛型编程、模板元编程等现代编程范式,成为一门兼具过程式、面向对象和泛型编程能力的多范式语言。如今,C++广泛应用于系统开发、游戏引擎、嵌入式设备、高性能计算、人工智能框架等领域,是计算机科学领域中不可或缺的核心语言之一。 一、C++的起源与发展历程 C++的诞生源于对C语言的扩展需求。20世纪70年代,C语言凭借其高效性和可移植性成为系统编程的主流语言,但随着软件规模的扩大,C语言的过程式编程范式在代码复用、模块化设计和维护性方面逐渐显现出局限性。1979年,斯特劳斯特卢普开始在C语言中引入Simula语言的面向对象特性,最初将这个新语言命名为“C with Classes”(带类的C)。1983年,该语言正式更名为C++,其中“++”取自C语言的自增运算符,寓意着对C语言的超越和扩展。 1985年,第一本C++教材《The C++ Programming Language》的出版标志着C++的正式成型。1998年,国际标准化组织(ISO)发布了第一个C++标准(C++98),奠定了C++的语言基础。此后,C++经历了多次重要的标准更新:2003年的C++03主要对C++98进行了错误修正和细节完善;2011年的C++11是一次里程碑式的更新,引入了Lambda表达式、智能指针、移动语义、范围for循环等大量新特性,极大提升了语言的现代性和易用性;后续的C++14、C++17、C++20和C++23则持续迭代,分别在泛型编程、模块化、协程、概念(Concepts)、范围(Ranges)等方面进行了增强,使C++始终保持对现代编程需求的适配。 二、C++的核心特性 1. 兼容C语言,兼具高效性 C++完全兼容C语言的语法和语义,绝大多数C语言代码可以直接在C++编译器中编译运行。这一特性使得C++能够继承C语言的核心优势:贴近硬件底层,允许程序员直接操作内存(如指针、数组),拥有极高的执行效率和内存控制能力。与解释型语言(如Python、JavaScript)不同,C++代码经编译器编译为机器码后直接运行,无需虚拟机或解释器的介入,因此在性能敏感的场景(如操作系统内核、实时系统)中表现卓越。 2. 面向对象编程(OOP) 面向对象编程是C++的核心特性之一,它将数据和操作数据的方法封装为“类(Class)”,通过对象的实例化实现代码的模块化和复用。C++支持OOP的三大核心特性: * 封装:通过访问控制符(public、private、protected)隐藏类的内部实现细节,只对外暴露必要的接口,提高代码的安全性和可维护性。 * 继承:允许一个类(派生类)继承另一个类(基类)的属性和方法,实现代码的复用和层次化设计,例如可以从“Shape”基类派生出“Circle”“Rectangle”等子类。 * 多态:分为静态多态(编译时多态,通过函数重载和模板实现)和动态多态(运行时多态,通过虚函数和继承实现)。动态多态使得基类指针或引用可以指向派生类对象,并调用派生类的重写方法,是实现“开闭原则”的关键。 3. 泛型编程与模板 泛型编程是C++的另一大特色,其核心思想是编写与数据类型无关的通用代码,以提高代码的复用性。C++通过模板(Template) 实现泛型编程,分为函数模板和类模板: * 函数模板允许定义一个通用的函数,支持不同类型的参数,例如实现一个通用的排序函数,可用于int、float、字符串等多种类型的数组。 * 类模板则允许定义通用的类,例如C++标准库中的vector<T>、map<K, V>等容器,都是通过类模板实现的,能够适配不同的数据类型。 模板还支持模板元编程(TMP),即在编译期执行计算和逻辑判断,这一特性使得C++能够在编译期优化代码,进一步提升运行效率。 4. 丰富的标准库 C++标准库(STL,Standard Template Library)是其重要组成部分,提供了大量的通用数据结构和算法,极大地简化了开发工作。标准库主要分为以下几个部分: * 容器(Containers):提供了常用的数据结构,如动态数组(vector)、链表(list)、栈(stack)、队列(queue)、映射(map)等,这些容器均通过模板实现,支持任意数据类型。 * 算法(Algorithms):包含了排序(sort)、查找(find)、遍历(for_each)、交换(swap)等通用算法,可直接作用于容器,实现高效的数据处理。 * 迭代器(Iterators):作为容器和算法之间的桥梁,提供了统一的访问容器元素的接口,使得算法可以独立于具体的容器类型。 * 函数对象(Functors)、智能指针(Smart Pointers)(如unique_ptr、shared_ptr)等工具类,进一步增强了语言的易用性和安全性。 5. 内存管理与性能控制 C++允许程序员直接管理内存,通过new和delete运算符手动分配和释放内存,这一特性赋予了程序员极高的灵活性,但也带来了内存泄漏、野指针等风险。为了缓解这一问题,C++11引入了智能指针,通过RAII(Resource Acquisition Is Initialization,资源获取即初始化)机制自动管理内存,在对象生命周期结束时自动释放内存,有效减少了内存错误。 此外,C++支持手动控制内存布局、内联函数(inline)、编译器优化等特性,使得程序员能够针对性能关键的代码进行精细优化,满足高性能应用的需求。 三、C++的应用领域 C++的高效性、灵活性和多范式特性使其在多个领域占据主导地位: 1. 系统软件开发:操作系统内核(如Windows、Linux的部分模块)、设备驱动程序、编译器、解释器等底层软件,均大量使用C++开发,因为它能够直接与硬件交互,且执行效率极高。 2. 游戏开发:主流的游戏引擎(如Unreal Engine、Unity的底层核心)均采用C++开发,游戏对实时性和性能的高要求使得C++成为首选语言。 3. 嵌入式系统:在汽车电子、工业控制、智能家居等嵌入式设备中,C++凭借其高效性和对资源的低消耗,被广泛用于开发底层控制程序。 4. 高性能计算与人工智能:在科学计算、大数据处理、人工智能框架(如TensorFlow、PyTorch的底层核心)等领域,C++的高性能特性使其成为实现核心算法的首选。 5. 金融科技:高频交易系统对响应速度要求极高,C++的低延迟特性使其成为金融科技领域的主流语言。 四、C++的优势与挑战 优势 1. 高性能:编译为机器码运行,直接操作硬件,执行效率接近机器语言,是高性能应用的首选。 2. 多范式编程:支持过程式、面向对象、泛型、函数式等多种编程范式,可根据需求选择合适的编程风格。 3. 高度灵活:允许直接管理内存、控制硬件,适配从底层系统到上层应用的各种开发场景。 4. 丰富的生态:拥有庞大的开发者社区和丰富的第三方库,以及成熟的标准库,降低了开发成本。 挑战 1. 学习曲线陡峭:C++特性繁多,语法复杂(如指针、模板、内存管理),初学者需要花费较多时间掌握。 2. 内存安全风险:手动内存管理容易导致内存泄漏、野指针、缓冲区溢出等错误,增加了调试难度。 3. 编译复杂度高:模板的使用可能导致编译时间延长,且错误提示较为晦涩,增加了调试成本。 五、C++的未来发展 随着C++标准的持续更新,其语言特性不断完善,朝着更现代、更易用、更安全的方向发展。C++20引入的模块化(Modules)特性解决了传统头文件的冗余编译问题,大幅提升了编译效率;概念(Concepts)则增强了模板的类型检查,使泛型编程更安全;协程(Coroutines)为异步编程提供了原生支持,适用于高并发场景。C++23进一步优化了这些特性,并增加了更多便捷的语法和工具,如增强的范围库、字符串处理等。 同时,C++在新兴领域的应用也在不断拓展,例如在量子计算、边缘计算、自动驾驶等领域,其高性能和底层控制能力依然具有不可替代的优势。 总结 C++作为一门历经四十余年发展的编程语言,始终保持着强大的生命力。它既继承了C语言的高效和简洁,又融合了现代编程的先进理念,成为连接底层硬件与上层应用的重要桥梁。尽管学习和使用C++存在一定的挑战,但其在高性能、高灵活性方面的优势,使其在系统开发、游戏、嵌入式、高性能计算等领域依然是无可替代的选择。随着标准的不断更新和生态的持续完善,C++将继续在计算机科学领域发挥重要作用,为开发者提供强大的工具和无限的可能性。 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ 配套尝试文件:飞机小游戏 提取码:7878
因为一些神秘原因,需要写一下 T6 思路,后来考虑到既然都赛后复盘整理思路了(我平时打模拟赛从来不复盘的,显然这是一个坏习惯),不如水一篇题解。 容易发现这题其实是有原的:https://codeforces.com/problemset/problem/1239/B。 我两万年前打 Duel 的时候竟然还刷到过(),不过不幸的是当时对着题解看了好久没看懂。 先考虑什么是正规括号序列,比较容易想到的做法是栈,线性跑一遍即可,我记得这好像专门有一道题是干这个的,但是目前没找到/kel。但是这种方法在本题中显然是不可取的,不可能每次都要用栈跑一遍。考虑以 ( 为 111,) 为 −1-1−1 所构建的前缀和数组 aaa,满足以下条件: 1. 对于每一个 1≤i≤n1\le i\le n1≤i≤n,都有 ai≥0a_i\ge 0ai ≥0。 2. an=0a_n=0an =0。 其实很好证明,原理和栈实现是一样的。 很显然对于 sn≠0s_n \ne0sn =0,必然无解,直接输出 0 1 1。 然后有一个比较常见的解决环上问题的方法就是破环为链,考虑将原数组复制两份。 然后考虑在一个序列中,怎么找到其合法切口数。其实就是由前缀和数组中最小的那个元素的决定的,读者可以自己思考一下为什么一定要在最小的那个元素位置上切开,才可以保证切割后的序列合法(主要还是满足上述条件第一条)。接下来易得合法切口数就是最小元素的出现次数。 然后是最难的部分也就是如何考虑交换这个东西。 我们要做的就是使得交换后的序列中出现尽可能多的最小值,我不知道这样子讲得详不详细,如果存在疑问可以指出。 通过注意力可以发现 后面的目前更不了,笔者被浮木线下单杀了,可以先暂时自行思考交换后对前缀和数组会有哪些影响。
c++ a+b太难了肝了半天 #include<bits/stdc++.h> #define N 210 using namespace std; int as[N],bs[N],lena,lenb; string a,b; int main(){ cin>>a>>b; lena=a.size(); lenb=b.size(); for(int i=0;i<lena;i++)as[i]=a[lena-i-1]-'0'; for(int i=0;i<lenb;i++)bs[i]=b[lenb-i-1]-'0'; int length=max(lena,lenb); for(int i=0;i<length;i++)as[i]+=bs[i]; for(int i=0;i<length;i++){ if(as[i]>9){ as[i+1]; as[i]-=10; if(i==length-1)length; } } while(length&&as[length]==0)length--; for(int i=length;i>=0;i--)cout<<as[i]; cout<<endl; }
https://www.acgo.cn/application/1999671395517304832
我真的无语了,我考GESP2级,第二道编程题题提交的时候显示答案错误,点进去显示2,4,10,三个测试点错误,然后再次检查发现一个等号没写,补上后结果掉到12.5分了,前几天真题发布了,结果代码一模一样的显示测试点全过,CCF诗人吗
笑点解析: 然后 Duel 的所有题都是超绝博弈论((( ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ 题意解析:Alice 和 Bob 在一个长度为 nnn 的数组 AAA 里进行操作。他们轮流对 AAA 进行如下操作: * 选定一个正整数 kkk 使得 k≥1k\ge 1k≥1 且对于所有 1≤i≤n1\le i\le n1≤i≤n,k≤Aik\le A_ik≤Ai 。 * 将所有 AiA_iAi 的值减去 kkk。如果 Ai=0A_i=0Ai =0,则删除 AiA_iAi 。剩下的数重新按顺序排列。 如果在某个人的回合中数组为空,则对方获胜。 Who will 获胜 if both players play optimally? ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ 不难发现,在某个人的回合中,如果 minAi>1\min A_i\gt 1minAi >1: * 如果取 k=minAik=\min A_ik=minAi 后他可以获胜,则他就选 k=minAik=\min A_ik=minAi 。 * 如果取 k=minAik=\min A_ik=minAi 后他不能获胜,则他可以选 k=minAi−1k=\min A_i-1k=minAi −1,然后让后面一个人被迫选 k=1=minAik=1=\min A_ik=1=minAi ,依然可以获胜。 所以此时这个人必胜。 所以我们可以将 AAA 排序去重,找到第一个 Ai−Ai−1>1A_i-A_{i-1}\gt 1Ai −Ai−1 >1 的 iii,就能确定哪个人获胜了。 时间复杂度:O(∑nlogn)O(\sum n\log n)O(∑nlogn)。
备战时: 10:00起床,开始抱佛角,拼命复习。 11:00时发现路上要堵*了,带上复习资料到车上复习。 坐车复习时感觉头晕眼花,**了一场。 12:30终于赶到,毕竟是1:00考试。 这是一个新考点,没几个人报考。 这样就没了人流的指引,我们兴高采烈的发现我们迷路了。 又绕了20分钟,终于到考场了,差点就迟到了。 考试时: 刚开始选择与判断题都非常的难,被我轻松解决了。 后面第一道编程题蒙了,利用特殊样例拿了5分。 第二道则是个01背包,结果容量特别的大,数组容量够不着。 只好开了个vector,拿了17.5分。 我惊喜的发现我客观题最多错6道就能通过! 考完后: 遇到一位也是考6级的人,他第二道01背包用数组开,只拿了15分,666 原题出来了,和我记在脑子里的答案一对,错了6道! 我说这是要让我以60.5的成绩通过吗? 呜呜呜
STARTOPIA揽星社欢迎你!!! 福利多多多多多多!!! https://www.acgo.cn/application/2008893147354615808 这是我们的团队,希望你能加入 编辑 @揽星客 审核 @小肥羊 咨询请加 @揽星客
共30540条