2023 西北工业大学 NOJ 程序设计基础(C++) 100道完结版 含额外样例,题意理解,coding思路分析,难度评估

2024-03-23 1297阅读

极其感谢TA的帮助,所以下面是,爱门!

2023 西北工业大学 NOJ 程序设计基础(C++) 100道完结版 含额外样例,题意理解,coding思路分析,难度评估
(图片来源网络,侵删)

2023西工大NOJ (C语言版) 完结!!!-CSDN博客

前言

对于瓜的学生来说,noj是选了实验课之后必做的作业,占20%的分数;

但希望不要为了功利的目的写noj,理由如下:

1.编程永远是实践的过程,真正的知识只有自己打出来才能获得;更别说瓜的教材比较老,和新的C++标准有不少出入,尤其是习题册。

2.实验课也就1学分,不挂就行,你为了这点绩点功利啥。

3.瓜的实验课考试为随机抽题,最后答成什么样子主要看脸,你再功利也没啥用。

对于noj,自2023年秋开始启用新题,可以说,难度大幅提升。但质量存在极大参差,(◎_◎;);

C的NOJ教程有很多,但是C++的这可能还是第一篇,希望对有需要的人能有所帮助;

希望是有参考、引导的作用,帮助同学能更加高效地学习C++;

必看

对于代码

本人初学者,能力有限,有幸获得一位大佬很多帮助;

如若代码粗陋,请谅解;

因为本人水平实在有限,部分代码来自各个大佬,如不希望转载,可以联系我删除;

尽量使用较新的C++17标准,而不是教材和习题册上的包浆标准(食答辩了);

代码当然是尽可能AC的,但是由于noj的评阅比较雾,有的完全正确的也是WA,可以试试其他version,要是都不能我也没办法,饶了我罢;

代码格式

每题的代码,前两行会是 难度,重要性 评估,然后是该程序的一些注意点。

然后会是1+个版本,最后输入输出样例。(多版本时,后续的版本为了可读性不会注释掉,复制的时候注意)

考虑到做题方便,我会给出额外样例,以供同学检验自己的程序。

同时,考虑到中文复制之后会产生字符集问题,所以程序内部注释为纯英文(Chiglish)。

推荐工具

1.建议使用CLion作为编程工具,别惦记那CodeBlocks,Dev-C++了,一个太简陋,一个太老,不具有现代化工具的特点,都4202年啦,大人,时代变啦!

   实在不行也得用Visual Studio,community版本免费,官网链接如下

   Visual Studio 2022 IDE - 适用于软件开发人员的编程工具 (microsoft.com)

   你说你只会CodeBlocks?甚至CodeBlocks都配置不明白?能不能有点学习意识,

   B站上手把手教你安装配置Clion,Visual Studio的视频一抓一大把,学不会就洗洗睡吧。

   你说Visual Studio下载太慢?我滴IDM可是一眨眼就下好了,你也可以试试梯子。

   至于最推荐的CLion的安装、配置、使用,我就直接放大佬的文章了

   CLion安装、配置、使用、调试(完全小白向)-CSDN博客

2.不会吧,不会吧,不会有人写noj是网页看一眼,切个界面再打一句代码吧,或者是每次一忘就要切回头看一眼,烦不烦呐。

   什么,你说你是小机灵鬼,直接分屏,可是如果你不是外接显示器,那么点大的屏幕还分屏,折磨自己捏。

   所以,在下隆重推荐Snipatse,可以直接把noj上面的题目截下来,悬浮显示在最上层,而且还可以白嫖!

   官网链接Snipaste - 截图 + 贴图,不过建议直接在微软商店下载,体验更友好。至于使用方法,当然是自己去B站大学自学啦。

注:上述建议均基于Windows电脑,MacOS我真不道啊。

建议

1.学C++,就不要觉得自己只学C++,C的很多操作也得会。很多人C++学到最后,scanf()和printf()都不会。

NOJ攻略

1.写noj必须具有的意识:考虑极端情况,题目肯定是尽可能的恶心(划掉),考验你啦.

2.noj提交后的各种状态:

        pending        :处理中,重新刷新或者重新点击NOJ作业有概率得到结果;

                                如果一直pending,大概率是noj服务器又崩了罢(不是你的锅);

                                等服务器好了之后,可以在提交的程序上打一个空行再提交。

        AC                :你醒啦,恭喜你,你已经是个女孩子了(幻视,划掉);恭喜你,这道题通过了。

        WA               :程序错误,不能在输入后台样例的情况下得到正确结果。

        TE                :超时,也就是你的程序运行时间太长;

                                noj有的题目对时间卡的很紧,出现这种情况说明你又没动脑子 : (

                                解决方法很简单,抛弃你的暴力算法,用好的算法好好优化一下你的程序。

                            (注:对于noj来说,有的时候你的程序其实是TE,却给你显示WA,别给我犟,叉腰.jpg)

        CE                :编译错误。

                               如果你想:我本地运行的好好的,为什么提交上去就CE呢,不是可以编译吗?

                               一般有两种原因:

                                        1.头文件写漏了,本地没毛病是因为正常编译器会给你自动添加部分头

                                           文件,而noj的编译器就像薛定谔的猫,没人知道jxf到底塞的什么。

                                        (经典用cpp的string类不加,加)

                                        2.孔乙己,你是不是又用了什么STL特性?

                                           什么?你说C++如果不用STL,和C有什么区别?

                                           可是我们noj的编译器似乎不能完全支持STL捏(有时这种情况报WA)

3.代码输出:

        有人发现,很多一次输入很多组数据的题目,我提供的代码不能输出对应的样例,凭什么说能AC?

        这和noj后台的评阅机制有关,你别管了,长篇大论懒得扯,反正能,就是能;(叉腰.jpg)

        (实际上很多程序你直接复制粘贴我给的Input,然后敲个回车,输出会有问题,但是你自己一个数据一个数据地敲,或者分行粘贴,每行回车就好了);

良好的编程习惯

下面是我的编程习惯(我是菜鸡,大佬轻点骂)

第一部分:预处理命令,#include,#define等

空一行

第二部分: using namespace std;

空一行

第三部分:各类函数,彼此空行

空一行

第四部分:主函数 int main()

下面是示例

合理的空行和缩进不仅美观,还可以有效提升程序可读性!

#include 
using namespace std;
void fun(){
    
}
int main() {
    return 0;//new C++ standard can ignore this
}

夹带私货

关于电脑相关的外设,建议整一个机械键盘(一定要有素质,买线性静音轴,比如水蜜桃V2);

更重要的是,整个无线鼠标,尤其是带两个侧键的,比如罗技G304,一个侧键定义Ctrl+C,一个定义Ctrl+V,这会极大提升你的编程体验!

如果想买一个外接显示器的话(可以显著提升电脑使用体验),建议买23.8寸左右的,27寸你瓜宿舍桌面真塞的下,但是太大了,观感很不好。最重要的是分辨率至少2k,刷新率75hz就够用,色准要好,基础HDR要有,要是支持Type-C一线连接就更好啦。(我滴SANC N50PLUS 3代完美符合捏)在这之后就可以买个侧立支架把笔记本合上了,(如果你不是很追求双屏体验,双屏瓜的桌子也不怎么塞得下吧)。(十分建议显示器在京东上买)

对了,显示器最好搭配支架使用,NB f80就挺好的,便宜好用质量好。(为了应对挡板,可以搭配某宝定制小实木木块使用)

免责声明:看了私货部分,决定要买什么是自己的事,自己的决定,在下的话只是建议,仅供参考,不负责任,请自己思考判断自己是否需要,以及是否自愿承担相应风险。

声明

note只会在前几季有,用于引导新手,才不是因为懒呢;

但是放心,后面的难题,或者复杂的题一般都会带注释,甚至可能中文注释;

后期会逐渐添加题目截图,有的可能不含Sample Input和Sample Output部分,但是代码最后肯定有;

如果Additional Input和Additional Output 是NULL,说明这题没必要搞额外样例,或者是太麻烦,我已经懒死了;(要是实在想要额外样例,拿我的代码随便跑几个不就行了)

有的题目,我说无人AC,是基于我的认知,可能有真的大佬,可能题目又被修改过了,反正是我这个小垃圾肯定AC不了酱紫;

严正声明:该篇Blog仅作引导作用,绝不鼓励抄袭,若因其他用途产生不良后果与本人无关。

总结

2023年秋-2024年春的C++ noj 一共100道,应该是最多AC97道的亚子;

其中   042.【专业融合:航空】飞机起飞速度

          057.字符串替换

          074.【专业融合:天文】日出日落时间

三道不能AC;

第1季(001-010)

001.Hello World

//Difficulty: 0/10
//Importance:10/10
//The place our dream begin!
//What you need:
//a good coding style(tab,enter,naming...)
//clear coding logics
#include 
using namespace std;
int main()
{
    cout > B ;
    cout 
h3 id="003.%E6%95%B0%E6%8D%AE%E7%B1%BB%E5%9E%8B%E5%A4%A7%E5%B0%8F%E5%8F%8A%E8%8C%83%E5%9B%B4"003.数据类型大小及范围/h3 pnote:/p p1.sizeof()函数的学习;/p p2.climits的基本运用。/p pre class="brush:python;toolbar:false"//Difficulty: 1/10 //Importance: 1/10 //make use of climits (limits.h) to get min and max sizes //sizeof(),return memory size(bit) #include iostream #include climits using namespace std; int main() { int n; cin >> n; switch (n) { case 1: cout >fz1; getchar(); cin>>fm1; cin>>fz2; getchar(); cin>>fm2; int arr[4][2]; add(fz1,fm1,fz2,fm2,arr); sub(fz1,fm1,fz2,fm2,arr); multi(fz1,fm1,fz2,fm2,arr); divi(fz1,fm1,fz2,fm2,arr); char symbol[4]={'+','-','*','/'}; for(int i=0;i
VPS购买请点击我

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

目录[+]