竞赛
考级
please help me
nimenqimoduoshaofen
要说用 C++ 输出 "Hello world" 这事儿啊,那可真是得好好说道说道。你想啊,这可不是凭空就能让那几个字出现在屏幕上的,这里面的门道,说多不多,说少也不少,反正就是得一步一步来,急不得。 首先呢,你得有个地方写代码吧?总不能凭空想象,然后它自己就出来了,那不成魔术了嘛。这个写代码的地方呢,也没啥特别讲究的,就是个能打字的软件,不管叫啥名儿,只要能把你敲的那些字母、符号啥的都记下来,最后还能存成一个叫.cpp 的文件就行。你说这文件名字重要不?好像也不是那么重要,反正只要后缀对了,电脑大概就能认出来这是个 C++ 的代码文件,至于前面叫啥,你随便起,只要自己能记住就行。 然后啊,写代码之前,有些准备工作得做好。就像你要做饭,得先看看家里有啥调料,没有的还得提前准备好。C++ 里也是这样,你想让它输出东西,就得用它专门管输出的那些 “工具”,这些工具在哪儿呢?哦,在一个叫 iostream 的 “仓库” 里。那怎么把这个仓库打开,拿出里面的工具呢?就得写一行 #include <iostream>。这行代码啊,说白了就是跟 C++ 打个招呼:“哎,我等会儿要用输出的东西,你把那个 iostream 仓库给我打开呗,省得我要用的时候找不着,多麻烦。” 你看,这一步虽然简单,但少了它还真不行,不然后面想输出都没工具可用。 准备工作做好了,接下来就得有个 “主心骨” 了,在 C++ 里,这个主心骨就是主函数。啥是主函数呢?你就把它当成一场戏的主角,所有重要的事情都得在它这儿办。主函数长啥样?一般都是 int main (),后面还得跟一对大括号 {},这对大括号就像是主角的舞台,所有要做的动作都得在这舞台里头完成,不能跑到外面去,跑到外面去 C++ 可能就不认了。 现在到了最关键的一步了 —— 怎么让它把 "Hello world" 这几个字显示出来。前面不是打开了 iostream 仓库嘛,里面有个叫 cout 的 “小助手”,它的本事就是输出东西。那怎么让这个小助手干活呢?得用 << 这个符号,把 "Hello world" 这串字递给它,就像你把东西递给别人一样,得有个传递的动作。所以就有了 cout << "Hello world" 这么一段。哎,对了,通常后面还得加个 << endl,这个 endl 是啥意思呢?就是说,输出完 "Hello world" 之后,换一行,让后面要是还有别的东西输出,能另起一行,看着清楚点儿。当然了,你要是实在不想加,有时候也能显示出来,但是加上总觉得更规矩一些,就像写文章段落之间要空一行似的,看着舒服。 哦,还有个事儿忘了说,每一行代码结束的时候,都得加个分号;,这就跟咱们说话说完一句要加个句号一样,是个规矩。你要是忘了加,C++ 就可能搞不清楚你这行代码到底在哪儿结束,到时候它就会给你报错,说它看不懂,那你还得回头找哪儿忘了加分号,多耽误时间啊。 最后啊,主函数把该干的活儿都干完了,也得有个收尾。一般都是 return 0;,这个 0 也没啥特别复杂的意思,就像是告诉电脑:“我这活儿干完了,顺顺利利的,没出啥问题,你放心吧。” 至于为啥是 0 不是别的数,这大概就是 C++ 的一个习惯,大家都这么用,也就成了规矩。 这么一套东西都弄好了,还不算完,你还得让电脑能看懂你写的这些东西。因为你写的这些代码,是给人看的,电脑其实看不懂,它只看得懂它自己能理解的 “语言”。这时候就需要一个叫编译器的东西,帮你把这些人能看懂的代码,翻译成电脑能看懂的指令。这个编译的过程呢,也没啥特别的,就是你点一下编译按钮,或者输个编译命令,它就自己开始干活了,要是你写的代码没问题,它就会生成一个能直接运行的文件。 然后你再把这个生成的文件运行一下,哎,这时候你就会发现,屏幕上真的出现了 "Hello world" 这几个字。你说神奇不神奇?其实也不神奇,都是前面那些步骤一步一步铺垫好的,少了哪一步,可能都出不来这个结果。 所以啊,用 C++ 输出 "Hello world" 这事儿,看着简单,其实每一步都有它的道理,都不能马虎。就像盖房子,得先打地基,再砌墙,再上房顶,一步都不能错,错了房子就盖不起来。这代码也是一样,一步一步都做对了,那 "Hello world" 自然就出来了,你说是不是这么个理
你的WiFi:
然后,画了只我在sprunki里的副推 啊啊啊终于画了个比较像样的画!(主要是鼠标画画有点难控制) 我不行了,加诺德你是块芝士小蛋糕!!
@AC君 有一道题名字叫偶数的数量,知识点为什么是枚举啊? 不应该是一维数组吗? 我用一维数组的方法、写了一下,结果全对 所以想请问一下,是出了点问题还是本来就可以用枚举算法解决?
最近学习较忙,没时间看ACGO,有几个月没上线了,现在回归了,双休在线
6
点我复制代码 点我进团
看他主页,为他打抱不平
https://www.acgo.cn/application/1680173891275513856
三小时死磕一道蓝题:从“这题是人做的?”到AC的狂喜 凌晨一点的书桌,屏幕亮得刺眼。ACGO的题库界面停留在一道蓝题上,标题旁的“难度:中等”像个嘲讽的笑脸。我盯着题目看了五分钟,脑子里只有四个大字:毫无思路。 本来只是想睡前刷道题放松下,哪成想,这一“放松”,就是三个小时。 这道题的题干不算长,大概是个区间查询的变种问题,要求在一堆杂乱的数据里,快速找出满足特定条件的子区间数量。起初我还挺轻敌,蓝题嘛,无非就是暴力优化一下,或者套个常见的算法模板。 我随手敲了个暴力枚举的代码,两层循环遍历所有区间,逻辑简单粗暴。点击提交,不出意外,TLE——时间超限。毕竟数据范围是1e5,暴力的O(n²)复杂度,跑断腿也过不了。 行,暴力不行就换思路。我翻出草稿纸,开始画样例的示意图。把数据一个个标上去,试图找出点规律。十分钟,二十分钟,草稿纸上画满了歪歪扭扭的线段和数字,还是一头雾水。我又试着把样例的答案拆解,反推每一步的计算逻辑,可总在某个节点卡住,前后矛盾。 “这题到底要考啥啊?”我抓了抓头发,有点烦躁。打开算法笔记,把滑动窗口、前缀和、单调栈这些可能相关的知识点翻了个遍,挨个往题目上套。套滑动窗口,发现条件不满足单调性;套前缀和,又不知道怎么转化问题。提交了两次修改版的代码,一次WA(答案错误),一次RE(运行错误)。 屏幕上的“提交失败”红得扎眼,我甚至开始怀疑:是不是我理解错题了? 我强迫自己关掉代码编辑器,站起身去接了杯水。冷水泼在脸上,脑子清醒了点。回到座位,我没有急着敲代码,而是逐字逐句重读题干,把每一个条件都圈出来。“区间和”“最小值”“数量统计”……等等,区间和与最小值的结合?我猛地想起之前看过的一道类似题目,好像用到了单调栈+贡献法——计算每个元素作为最小值时,能贡献的合法区间数量。 对!就是这个方向! 我瞬间来了精神,重新在草稿纸上梳理逻辑:先用单调栈找出每个元素左边和右边第一个比它小的元素位置,确定它作为最小值的区间边界;再结合前缀和快速计算区间和,判断是否满足题目要求。思路一旦通了,后面的步骤就顺理成章了。 我手指飞快地敲着键盘,定义数组、处理边界、维护单调栈、计算贡献……代码写得很顺,二十分钟就完成了初稿。这一次,我没有急着提交,而是自己造了几组数据测试,包括边界情况和极端数据。测试用例都过了,我心里有点小窃喜,但还是不敢掉以轻心——毕竟竞赛里,坑往往藏在细节里。 我又检查了一遍代码,果然发现了问题:计算区间和的时候,数据可能会溢出,忘记开long long了。“不开long long见祖宗”,这句竞赛圈的老话果然没说错。赶紧修改,把所有涉及求和的变量都改成long long类型。 深吸一口气,点击“提交”。 眼睛死死盯着屏幕上的加载进度条,一秒,两秒……当那个绿色的、带着金光的AC跳出来的时候,我差点叫出声。 凌晨四点零三分,距离我点开这道题,正好三个小时。 我瘫在椅子上,看着屏幕上的“通过所有测试点”,突然觉得刚才的烦躁、焦虑、挫败,都变成了一种难以言喻的快乐。这种快乐,不是刷水题时的轻松惬意,而是死磕到底后,拨云见日的酣畅淋漓。 其实竞赛刷题就是这样吧。没有谁是天生的神犇,不过是一道题一道题熬出来的。那些卡题的深夜,那些草稿纸上的涂鸦,那些一次次的提交失败,都是通往AC的必经之路。 关掉电脑的时候,窗外已经泛起了鱼肚白。我躺在床上,脑子里还在回放那道题的思路,嘴角却忍不住上扬。 明天,再去ACGO上挑一道蓝题?
你收藏我的一个题单,我收藏你的一个题单
数位分离 1、位数确定的数位分离 2、位数不确定的数位分离 枚举数位 1、位数确定时可以循环嵌套枚举每一位上的数字: 2、范围确定时可以枚举每一个数,如果涉及到数位操作,再进行数位分离:
我就不说怎么写了,就分析一波 首先:如果两人都聪明,则这个n*n的方块矩阵肯定要被走完。 其次:两人的顺序题目中有了,就是先"ACGO",在是"admin" 再然后,经过如上分析,我们可以得到的规律是:如果变长是2的倍数,则“ACGO”胜利,不然就是“admin”胜利(因为一个数的²不改变是否能被2整出这一特性)
小黑子ikun们快来试试
RT。 QQ 群号:1058509279。 如果您不知道这是什么东西,可以前往:https://algorithm-duels.online/home。
德州扑克规则:每位玩家会发到2张牌,同时有5张底牌,也就是每人能够支配7张牌,从这7张牌中需选出5张牌,大小分别为:单张,对子,三张,顺子,同花,三张带两张(full house),炸弹,同花顺 题目:若有N个人参与游戏,试求抽到后5种的概率分别为多少 ps:本人菜鸟一枚,能力不够,但突发奇想,有没有大佬能提供一个代码思路?
666
#include<iostream> using namespace std; void mx(int a,int b,int c){ int x = a; if(b>x)x=b; if(c>x)x=c; cout<<x; } int main(){ int a,b,c; cin>>a>>b>>c; mx(a,b,c); returnn 0; }
共26294条