C-C++心得
Casionx
爱家人 爱自己 爱生活 爱coding
展开
-
C/C++的一些知识点归纳(二)
【1】输入输出 gets(str)输入的字符串中含有空格时,输出仍为全部字符串,这说明 gets() 函数不会把空格作为输入结束的标志,而只把回车换行作为输入结束的标志,这与 scanf() 函数是不同的。 总结:如果希望读取的字符串中不包含空格,那么使用 scanf() 函数; 如果希望获取整行字符串,那么使用 gets() 函数,它能避免空格的截 断。 在 printf() 函数中原创 2017-03-19 19:57:41 · 691 阅读 · 0 评论 -
递归的应用-回溯
【转自《王道上机指南》】 题目1459:Prime ring problem 题目描述: A ring is compose of n circles as shown in diagram. Put natural number 1, 2, …, n into each circle separately, and the sum of numbers in two adj...原创 2017-03-13 16:24:10 · 716 阅读 · 0 评论 -
0-1背包问题
【01背包】 有N件物品和一个载重为W的背包。第i件物品的重量是w[i]w[i],价值是v[i]v[i]。 求解背包最多能装下的价值是多少? 【解法一 动态规划】 思路分析: 对于每件物品,只有两种情况:装?不装?。 假设dp[i][j]表示在背包剩余载重j的情况下,前i个物品能达到的最大价值。 对于第i个物品, 如果w[i]>j,放不进去,不能放,故dp[i][j]=dp[i-1]原创 2017-03-11 13:37:20 · 559 阅读 · 2 评论 -
整数分解方法
题目大意:给定一个整数n,找到k个数,使得其和等于n。 如:4=1+1+1+14=1+1+2;4=1+3;4=2+2;4=4;求其分解的所有可能,并输出分解表达式。 解题思路:要拆分整数n,肯定先要找到一个元素,然后我们会发现,剩下的问题还是一个整数差分问题,因此容易得到问题的解。 定义函数f(n)为n可以拆分的解的个数,即可以先拆分出一个数字k(k = 1,2,……,n...原创 2017-03-16 13:42:43 · 28850 阅读 · 7 评论 -
大整数转换为其他进制数
如何对 一个1000位(即1099910^{999})以内的十进制大数M进行进制K(K<=16)的转换。 思路分析: 对一个大数M的存储可以利用字符串string来存储输入,并且在这里使用string相对于数组来说,更容易操作。 我们需要模拟M除以K和M对K取余操作。 从第一位开始,对M每一位M[i]表示的整数进行判断。 如果M[i]<<K,就商零。【如果在第一位,也商0,原创 2017-03-10 18:38:17 · 947 阅读 · 0 评论 -
C/C++的一些知识点归纳(一)
最近准备考研上机复试,刷题的过程中,记录了一些解题过程中的知识盲区和一些容易犯的错,踩的坑。 【1】string中+操作不能对整型进行运算。int i=100;string str="成绩为:";string str2;str2=str+i;//(x) 期望实现 str2="成绩为:100"cout<<str2;这样明显行不通,C语言中整型变量不能直接和字符串相加...原创 2017-03-15 21:40:14 · 934 阅读 · 0 评论 -
如何测量记录动态数组长度
引出: Problem 1073 -合并有序数组 给你两个有序数组,输出合并后的有序数组。注1:本题的有序指的是非降序。 注2:不需要合并相同元素。 注3:本题不应使用排序算法。 Input 首先一个数N,表示有N组数据(1<= N <= 100) 每组数据分两行,每行表示一个数组,开头一个整数X(1 <= X <= 1000000)表示数组元素数量,跟...原创 2017-03-09 21:24:01 · 1437 阅读 · 0 评论 -
八皇后问题简单解法
八皇后问题是一个以国际象棋为背景的问题:如何能够在 8×8 的国际象棋棋盘上放置八个皇后,使得任何一个皇后都无法直接吃掉其他的皇后?为了达到此目的,任两个皇后都不能处于同一条横行、纵行或斜线上。八皇后问题可以推广为更一般的n皇后摆放问题:这时棋盘的大小变为n×n,而皇后个数也变成n。当且仅当 n = 1 或 n ≥ 4 时问题有解。 仔细分析此题,可以发现:如果我们从第一行开始放置,每行放置一原创 2017-03-13 19:24:06 · 1443 阅读 · 2 评论
分享