![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c语言的学习
文章平均质量分 53
小白卷不动
武科大码农
展开
-
十六进制转八进制
#include<iostream>using namespace std;int main(){ string a,b; long long i,t=1,sum=0,sum1; cin>>a; for(i=a.length()-1;i>=0;i--) { if(a[i]>='0' && a[i]<='9') a[i]-='0'; else a[i]=a[i]-'A'+10; sum+...原创 2022-02-27 16:31:26 · 80 阅读 · 0 评论 -
C语言指针变量作为函数参数的易错辨析
1.指针变量指针变量也是变量的一种,同整形,实形,字符型变量一样属于变量,只是类型丰富而且运用变化很多很多指针定义:<数据类型> * <标识符> 如int *p :p就是一个int型指针变量,用于储存表示地址...原创 2022-02-27 11:36:10 · 739 阅读 · 0 评论 -
求一元二次方程的根【C++】
哈哈哈这个就图一乐,各位看官要铭记,眼过千遍不如手过一遍求一元二次方程ax²+bx+c=0(a≠0)的根求根公式哦一元二次方程的求根公式是什么?_百度知道#include<iostream>#include<cmath>using namespace std;int main(){ double a,b,c,disc,x1,x2,r,i; cin>>a>>b>>c; //输入三个系数 disc=b*b-4*a*.原创 2022-02-25 23:35:28 · 4615 阅读 · 0 评论 -
c语言和c++中整数进制操作符——附赠一道习题
输入一个整数,分三行输出其十进制、八进制、十六进制的形式C语言C语言的标准输入输出还是蛮不错的,感觉比C++的好记好用,但是要想直接输出带有前缀的或者大写字母的,c语言就有点相形见肘啦printf("%d %o %x");分别表示十进制,八进制,十六进制#include<stdio.h>int main(){ int a; scanf("%d",&a); printf("%d %o %x\n",a,a,a); return 0;}输...原创 2022-02-25 23:02:16 · 378 阅读 · 0 评论 -
二分查找学习入门——【c语言】leetcode配合习题
前言我一直不知道二分查找有这么多练习和变式,本以为是一个简单深邃的思想用来学习,。但是啊,他的具体应用就没有那么简单了。因此,我配合着leetcode和洛谷的题目和学习资料,努力的刷通关知识点,并且努力的把知识点归纳总结,与君共勉知识点简介leetcode入门题目【ps一下,leetcode的提交和acm训练题目是不一样的,大家可以自行学习一下,免得看不懂,不过确实不难哦】题目链...原创 2022-02-20 10:48:11 · 282 阅读 · 0 评论 -
完全背包洛谷习题笔记
P1616 疯狂的采药疯狂的采药 - 洛谷解说一下我们先来假设一下输入数据是这样的:4 51 22 43 44 5不难看出输出应该是 1010但是究竟是怎样得出这个结果的呢?下面展示一下原理:( v_ivi 为体积,w_iwi 为价值)首先dp数组初始化全为0:给定物品种类有4种,包最大体积为5,数据来源于题目的输入v[1] = 1, w[1] = 2v[2] = 2, w[2] = 4v[3] = 3, w[3] = 4v[4].原创 2022-02-02 16:00:58 · 552 阅读 · 0 评论 -
分组背包小尝鲜——洛谷例题
解决这个问题之前先让我们了解一下分组背包问题:有N件物品和一个容量为V的背包。第i件物品的费用是c[i],价值是w[i]。这些物品被划分为若干组,每组中的物品互相冲突,最多选一件。求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和最大。同01背包一样,此物品存在两种状态,取与不取,若取此物品,则继续判断下一组的第一件物品,若不取此物品,则继续判断本组下一件物品,若该物品为本组最后一件物品,则判断下一组。P1757 通天之分组背包题目链接 通天之分组背包 - 洛谷..原创 2022-02-02 15:59:18 · 687 阅读 · 0 评论 -
牛客2022年除夕AK场——字符串子序列“春联”【思维题】
题目链接登录—专业IT笔试面试备考平台_牛客网思路题解链接【题解】跨年ak场题解_ACM竞赛_ACM/CSP/ICPC/CCPC/比赛经验/题解/资讯_牛客竞赛OJ_牛客网来自小白的吐槽:不愧是小白,确实不太会呜呜呜。当时做题时完全是懵的。如此找规律的妙法,确实值得我记一笔,在纸上模拟了很久很久,才慢慢找到适合自己的理解方法首先,了解字符串的子序列与子串的区别子串:必须连续子序列:可以不连续给定字符串 "asdfghj"子串:是...原创 2022-02-01 17:46:55 · 702 阅读 · 0 评论 -
牛客2022年除夕AK场——c++中string字符串的小小使用(笔记而已,勿喷就好)
题目链接登录—专业IT笔试面试备考平台_牛客网思路把X 都可以当成 9 来看,因为求的是最大的可能。所以把所有 X 替换成 9 ,排序一下即可。【排序就很大有文章哦,这可能就是c++的方便之处吧】在此,我就稍微普及一下c++的string类做题小用法吧,【注意注意菜鸟我还没开始学习c++的具体内容,一切只能从简描述一下吼】string的小应用 ——就是针对字符串输入输出string 用来定义一维字符串 string a;//相当于char a[...原创 2022-02-01 13:46:02 · 658 阅读 · 0 评论 -
c语言(c++的特殊符号输出)
在C语言中,相信很多人尝试过进行“%”的输出,常规的 printf("%d\n"); 肯定是行不通的,这里需要注意的是在c语言中对“%”和“\”的输出是可以的,但是输出格式不能直接进行输出,编译器在编译的时候会把"\“理解成单个字符”",同理,也会把"%%"理解成单...转载 2022-02-01 10:09:51 · 6373 阅读 · 0 评论 -
2022牛客寒假算法基础集训营1——C Baby‘s first attempt on CPU【模拟应用】
题解11.看最少插入几行,从前到后的排查,插入之后原来行数就会改变,而且后面行数因为前面行数的改变而改变2.所幸不是什么贪心动态规划的算法,就是模拟和排查3.用a数组表示i行满足条件插入空语句后的行数,在一行中遇到1时判断i行与i-j行相差函数是否小于等于3行,再加上增加行数#include<bits/stdc++.h>using namespace std;int n,a[105];int main(){ int i,j,t; scanf("%d",&...原创 2022-01-27 19:26:36 · 409 阅读 · 0 评论 -
01背包问题滚动数组(一维数组)
看了好几天的背包问题。。。终于有了一点浅显的理解 一开始学完01背包的二维写法,再看一维写法是一脸懵逼的,自己推导了几遍过程,终于是理解了!!!分享一下蒟蒻的心得问题如下:有n个重量和价值分别为wi,vi的物品。从这些物品中挑选出总重量不超过W的物品,求所有挑选方案中价值总和的最大值。 输入:n=4 (w,v)={(2,3),(1,2),(3,4),(2,2)} 输出:7 最大负重为5 如果学过01背包的二维数组写法,那么应该会发现若是递推顺序是正序,那么我们需要用到的是左上方和正上方的数据,如下图 当转载 2022-01-26 10:25:01 · 403 阅读 · 0 评论 -
动态规划入门练习【01背包问题】——洛谷
P1048 [NOIP2005 普及组] 采药思路 01背包问题【思路可以看哔哩哔哩视频哈】 附上视频链接吧动态规划DP0-1背包_哔哩哔哩_bilibili 【这个是我觉得最清楚最基础的视频】洛谷试练场 普及组 动态规划的背包问题_哔哩哔哩_bilibili【题目来源哦】代码实现【菜鸟本鸟自己写的】#include<bits/stdc++.h>using namespace std...原创 2022-02-01 14:23:47 · 1462 阅读 · 0 评论 -
J 小朋友做游戏——牛客训练营【前缀和C语言】
题目思考与总结没错这又是一份菜鸟笔记!!!!与君共勉我最开始思路是用sort函数将a数组(即安静的小孩)与b数组(淘气的小孩子)的幸福值按从大到小排序【不会还有人用冒泡排序吧,赶紧去学一下c++的sort函数】。再用一个for循环一个一个来取a数组和b数组的较大值但是唔,随着参与游戏的小朋友人数越来越多,for循环会超时此时应该怎么办呢?【枯】没错,用到前缀和优化时间复杂度【其实我也不太理解但是没关系以后会学】由于两个数组已经按降序排列完成了,所以只需要枚举a数...原创 2022-01-25 11:07:46 · 3046 阅读 · 0 评论 -
P2697 宝石串 洛谷——前缀和(c语言)
思路可以认为G是-1,R是1,然后求一个前缀和s如果s[i]==s[j],那么j--->i这一整段,一定是一个和为0的区间,即红绿相等的稳定区间用前缀和sum[i]表示前i个中R比G多几个,然后从首位个找出R比G多x个并分别存入各自的数组记住,首个非常重要,所以会判断le【i】是否为0代码#include<bits/stdc++.h> //万能开头using namespace std;const int N=1000001;...原创 2022-01-24 11:44:21 · 1150 阅读 · 0 评论 -
求N个有理数的和
编写程序,求N个有理数的和每个有理数均以分子/分母的形式给出,你输出的和也必须是有理数的形式。Input第一行给出一个正整数N(≤100)。随后一行给出N个有理数,中间用空格隔开,每个有理数均以分子/分母的形式给出。题目保证所有分子和分母都在long long范围内。另外,负数的符号一定出现在分子前面。Output输出上述数字和的最简形式 —— 即将结果写成整数部分 分数部分,其中分数部分写成分子/分母,要求分子小于分母,且它们没有公因子。如果结果的分数部分为0,则只输出整数原创 2022-01-24 10:12:55 · 483 阅读 · 0 评论 -
深度优先搜索及例题《基础》 洛谷
目录P1706 全排列问题P1219 [USACO1.5]八皇后 Checker ChallengeP1605 迷宫P1101 单词方阵P1706 全排列问题#include<stdio.h>#include<string.h>int a[15];int b[15];int n;void dfs(int);int main(){ scanf("%d",&n); dfs(1); return 0..原创 2022-01-20 18:35:56 · 1945 阅读 · 0 评论 -
二分法求根(c语言)——弦截法计算一元多次方程的根
递归的求法#include<stdio.h>#include<math.h>double root(double,double);int main(){ double x1,x2,ans; scanf("%lf%lf",&x1,&x2); ans=root(x1,x2); printf("%lf\n",ans); return 0;}double root(double x1,double x...原创 2022-01-19 20:31:04 · 1377 阅读 · 0 评论 -
第九届“图灵杯”题目之 H 特征值——前缀和(c语言)
链接:登录—专业IT笔试面试备考平台_牛客网来源:牛客网题目描述最近捷宝学习了线性代数的知识,并成功在期末考试中获得了100分的好成绩。其中计算矩阵的特征值这一题型给他留下深刻印象。出于好奇心,他决定利用假期时间仔细钻研特征值这一概念。经过长达好多好多好多好多天的闭关研究,捷宝提出了整数的特征值这一概念。输入描述:输出描述:输出共包括一行,输出所研究数字的特征值示例1输入1225输出1360说明1225+122+12+1=1...原创 2022-01-18 12:08:17 · 403 阅读 · 0 评论 -
第九届“图灵杯”题目之NEUQ字符删除统计(c语言)
链接:登录—专业IT笔试面试备考平台_牛客网来源:牛客网题目描述一天Phenix得到了一个长度为n的字符串,字符串仅由大写字母A~Z组成,现在Phenix想知道最少需要删除多少个字符使字符串变成NEUQNEUQ……这种由若干个"NEUQ"组成的形式。输入描述:第一行一个整数nnn,表示字符串长度(n<=106n<=10^6n<=106)第二行一个字符串输出描述:一个整数,表示最少需要删除的字符数量示例1输入10NEUUQNEUQQ输出.原创 2022-01-18 11:14:59 · 437 阅读 · 0 评论 -
快速幂算法(c语言)
取模运算:a % p(或a mod p),表示a除以p的余数。比如给定一个正整数p,任意一个整数n,一定存在等式 :n = kp + r ;其中 k、r 是整数,且 0 ≤ r < p,则称 k 为 n 除以 p 的商,r 为 n 除以 p 的余数。取模运算的规则如下:1、(a + b) % p = (a % p + b % p) % p2、(a - b) % p = (a % p - b % p) % p3、(a * b) % p = (a % p * b % p) % p4原创 2022-01-17 22:05:04 · 3578 阅读 · 0 评论 -
P7909 [CSP-J 2021] 分糖果 洛谷——规定范围内求mod n 的最大值
题目——一个不错的积累经验方法思路求最后篮子里剩下最多的糖果,即mod n最大值,所以两种情况1) 最优情况 剩下n-1个糖果2)达不到n-1个时,r最大的时候剩下的糖果最多min(r,l+n-1-l%n) #include<algorithm>#include<cstdio>#include<iostream>using namespace std;int main(){ int n,l,r...原创 2022-01-16 21:48:06 · 264 阅读 · 0 评论 -
分治——归并排序c语言
概念:归并排序(MERGE-SORT)是利用归并的思想实现的排序方法,该算法采用经典的分治(divide-and-conquer)策略(分治法将问题分(divide)成一些小的问题然后递归求解,而治(conquer)的阶段则将分的阶段得到的各答案"修补"在一起,即分而治之)。分治算法分阶段可以理解为就是递归拆分子序列的过程,递归深度为log2n。治阶段合并相邻有序子序列,我们需要将两个已经有序的子序列合并成一个有序序列,比如上图中的最后一次合并,要...原创 2022-01-13 15:07:10 · 2023 阅读 · 0 评论 -
P1149 [NOIP2008 提高组] 火柴棒等式——打表法,暴力
思路一:打表法:n数据不大,可以先都算出所有情况,相当于列出总表,然后再取数据//先用一个程序求出所有情况,即打表,非常暴力#include<stdio.h>int f[10]={6,2,5,5,4,5,6,3,7,6}; //0-9数字的火柴棍数inline int stick(int a){ if(a==0) return f[a]; int k,num=0; while(a) { k=a%10; num+=f[k]; /..原创 2022-01-12 18:44:07 · 310 阅读 · 0 评论 -
分治——快速排序(c语言)与c++中sort函数排序
#include <stdio.h>int qsort(int s[],int start,int end)//自定义函数 qsort(),start,end为要排序数第一个和最后一个{ int i,j; i=start; //将每组首个元素赋给i j = end; //将每组末尾元素赋给j s[0]=s[start]; //设置基准值 while(i<j) { while(i<j &a.原创 2022-01-12 15:28:35 · 619 阅读 · 0 评论 -
分治——最大子段和c语言
分治字面上的解释是“分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。在实现过程中也通常用到递归来不断处理子问题不多说,直接上题目和代码最大子段和题目描述给出一个长度为 nn 的序列 aa,选出其中连续且非空的一段使得这段和最大。输入格式第一行是一个整数,表示序列的长度 nn。第二行有 nn 个整数,第 ii 个整数表示序列的第 ii 个数字 a_iai。输出格式输出一行一个整原创 2022-01-10 21:16:43 · 1602 阅读 · 0 评论 -
递归与递推的区别与练习c语言
递归 百度百科: 一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量。我的理解:结束条件和自我调用。自我调用是在解决子问题,而结束条件定义了最简子问题的答案。 递推 百度百科:递推是按照一定的规律来计算序列中的每个项,通常是通过计算前面的一些项来得出序列中的指定项的值。其思想是把一个复...原创 2022-01-10 16:56:12 · 456 阅读 · 0 评论 -
牛客1019 扫雷——关于字符串和坐标移动的简便使用c语言
关于一个坐标的附近8个方向坐标判断的渐变表示还是很常用有效的作为新手还是有些生疏,看官们看看便好,有意见和想法大胆提出来,菜鸟当然希望可以看到更好的方法!!链接:登录—专业IT笔试面试备考平台_牛客网来源:牛客网题目描述小sun上课的时候非常喜欢玩扫雷。他现小sun有一个初始的雷矩阵,他希望你帮他生成一个扫雷矩阵。扫雷矩阵的每一行每一列都是一个数字,每个数字的含义是与当前位置相邻的8个方向中,有多少个雷(在下图中,雷用*表示);如果当前位置就是雷的话,仍输出一个*。比如初始.原创 2022-01-10 13:48:30 · 764 阅读 · 1 评论 -
CF1617A Forbidden Subsequence【c语言版】子列和字符串的理解
题意给定两个仅包含小写字母的字符串 S 和 T,保证 T 仅包含 a、b、c 且这三个小写字母都出现且仅出现一次。现重新排列字符串 S,记重新排列之后的字符串为 S ′ ,我们希望 T 不是 S' ′ 的子序列。请你求出重新排列之后满足该要求的字符串 S ′ ,如果满足要求的 S ′ 有多个,输出字典序最小的那一个。概念理解子列:在数学中,某个序列的子序列是从最初序列通过去 除某些元素但不破坏余下元素的相对位置(在前或 在后)而形成的新序列。例如1,1,2,3,3,3,2数列中按..原创 2022-01-10 11:41:09 · 341 阅读 · 0 评论 -
洛谷5461 递归方法
这个题数据量不大,可以用递归训练一下思维。以后等我学fei了动态规划再来优化吧递归实现需要找到出口,也就是最小字问题集,然后技巧就是,把第二个,第三个最小的子问题步骤用调用本身大致写出来,就可以实现递归啦。当然我也走了很多弯路。给小白一点点时间吧#include<stdio.h>#include<string.h>int a[1050][1050]; //局部变量,所有函数皆可用,不必声明void dfs(int,int,int); ...原创 2021-12-07 21:44:08 · 473 阅读 · 0 评论