自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(36)
  • 资源 (8)
  • 收藏
  • 关注

原创 二进制乘法和除法与移位运算的关系

为什么二进制乘除法可以转换成移位运算呢? 如: a=5; a=a*9; 可以转换成a=(aa=a*7 可以转换成a=(aa=a/12; 可以转换成 a=(a>>4)-(a因为乘除和减法都能转换成移位和加法运算,所以cpu中只需要一个加法器便能完成所有运算。

2018-01-15 13:57:24 12534

原创 最大收益

题目描述 外汇交易可以通过兑换不同国家的货币以赚取汇率差。比如1美元兑换100日元是购入1000美元,然后等汇率变动到1美元108日元时再卖出,这样就可以赚取(108 - 100)* 1000 = 8000日元。 现在请将某货币在t时刻的价格Ri(i = 0,1,2……n - 1)作为输入数据, 计算价格差,Ra - Rb(其中a > b)的最大值。 输入描述:

2018-01-13 14:39:06 253

原创 CCF NOI 1049.旋转图像

题目描述 输入一个n行m列的黑白图像,将它顺时针旋转90度后输出。 输入 第一行包含两个整数n和m,表示图像包含像素点的行数和列数。1 接下来n行,每行m个整数,表示图像的每个像素点灰度。相邻两个整数之间用单个空格隔开,每个元素均在0~255之间。 输出 m行,每行n个整数,为顺时针旋转90度后的图像。相邻两个整数之间用单个空格隔开。 样例输入

2018-01-11 18:59:18 1471

原创 CCF NOI 1048.检测矩形

题目描述 给定n*n由0和1组成的矩阵,如果矩阵的每一行和每一列的1的数量都是偶数,则认为符合条件。 你的任务就是检测矩阵是否符合条件,或者在仅改变一个矩阵元素的情况下能否符合条件。 “改变矩阵元素”的操作定义为0变成1或者1变成0。 输入 输入n + 1行,第1行为矩阵的大小n(0 输出 如果矩阵符合条件,则输出OK; 如果矩阵仅改变一个

2018-01-11 18:40:59 580

原创 CCF NOI 1047.寻找鞍点

题目描述 给定一个5*5的矩阵,每行只有一个最大值,每列只有一个最小值,寻找这个矩阵的鞍点。鞍点指的是矩阵中的一个元素,它是所在行的最大值,并且是所在列的最小值。 例如:在下面的例子中(第4行第1列的元素就是鞍点,值为8 )。 11 3 5 6 9 12 4 7 8 10 10 5 6 9 11 8 6 4 7 2 15 10 11 20 25

2018-01-11 17:05:40 565

原创 CCF NOI 1044.最近元素

题目描述 在一个非降序列中,查找与给定值最接近的元素。 输入 第一行包含一个整数n,为非降序列长度。1 第二行包含n个整数,为非降序列各元素。所有元素的大小均在0-1,000,000,000之间。 第三行包含一个整数m,为要询问的给定值个数。1 接下来m行,每行一个整数,为要询问最接近元素的给定值。所有给定值的大小均在0-1,000,000,000之间。

2018-01-09 13:36:59 637

原创 C++学习日记(1月8号)

1.内联函数编译器将会使用相应的函数代码替换函数调用,对于内联代码,程序无需跳到另一个位置执行代码,再跳回来,因此,内联函数的运行速度比常规函数稍快,但代价是需要占用更多内存。(注:内联函数不能调用自身)常规函数的调用过程:当调用函数时,程序会跳到另一个地址(函数地址),并在结束后返回,类似于看书时看注脚,程序在函数调用后立即储存该指令的内存地址,并将函数参数复制到堆栈(为此保存的内存块),跳到标记

2018-01-08 09:27:57 123

原创 C++学习笔记(1月7日)

注:我们默认1个字节用8个位 ,编号分别为7~1。1.二进制小数实际上,二进制表示法只能精确地表示多个1/2的幂的和,如3/4, 7/8,而1/3, 2/5等是无法精确表示的。2.对异或的理解粗暴理解就是男性和女性能生出孩子,否则就不行。不允许共存。异或运算其实就是半加器运算,不进位 0 xor 0 =0 0 xor 1 =1 1 xor 1 =(1) 0 1 xor 0 =1异

2018-01-08 08:58:03 128

原创 C++学习笔记(1月7日)

注:我们默认1个字节用8个位 ,编号分别为7~1。1.二进制小数实际上,二进制表示法只能精确地表示多个1/2的幂的和,如3/4, 7/8,而1/3, 2/5等是无法精确表示的。2.对异或的理解粗暴理解就是男性和女性能生出孩子,否则就不行。不允许共存。异或运算其实就是半加器运算,不进位 0 xor 0 =0 0 xor 1 =1 1 xor 1 =(1) 0 1 xor 0 =1异

2018-01-08 08:57:31 150

原创 CCF NOI 1042.发奖学金

题目描述 某小学最近得到了一笔赞助,打算拿出其中一部分为学习成绩优秀的前5名学生发奖学金。期末,每个学生都有3门课的成绩:语文、数学、英语。先按总分从高到低排序,如果两个同学总分相同,再按语文成绩从高到低排序,如果两个同学总分和语文成绩都相同,那么规定学号小的同学排在前面,这样,每个学生的排序是唯一确定的。 任务:先根据输入的3门课的成绩计算总分,然后按上述规则排序,最后按排名顺序输出

2018-01-06 17:23:37 740

原创 CCF NOI 1041.志愿者选拔

题目描述 世博会志愿者的选拔工作正在 A 市如火如荼的进行。为了选拔最合适的人才,A市对所有报名的选手进行了笔试,笔试分数达到面试分数线的选手方可进入面试。面试分数线根据计划录取人数的150%划定,即如果计划录取m名志愿者,则面试分数线为排名第m*150%(向下取整)名的选手的分数,而最终进入面试的选手为笔试成绩不低于面试分数线的所有选手。 现在就请你编写程序划定面试分数线,并输出所有

2018-01-06 16:32:19 2557

原创 CCF NOI 1038.玩扑克

时间限制: 1000 ms 空间限制: 262144 KB题目描述又到休息时间了。两个小伙伴要玩扑克牌比大小的游戏:每人分到一种花色的扑克牌,然后每人随机出一张牌,大者胜,最后获胜次数多的人,赢一轮。 不开心的事发生了,玩了一轮后,发现扑克牌竟然少了一张。到底少了几呢? 你能写个程序,快速找到扑克x吗?输入输入一行,包括25个用空格分隔的数字(A表示为1,J、Q、K表

2018-01-06 13:38:52 554

转载 快速幂取模_C++

原文链接:http://www.cnblogs.com/hadilo/p/5719139.html快速幂取模_C++一、题目背景  已知底数a,指数b,取模值mo  求ans = ab % mo 二、朴素算法(已知可跳过)  ans = 1,循环从 i 到 b ,每次将 ans = ans * a % mo  时间复杂度O(b)  

2018-01-06 13:22:28 385

转载 快速幂取模算法详解

原文链接:http://blog.csdn.net/ltyqljhwcm/article/details/530436461.大数模幂运算的缺陷:快速幂取模算法的引入是从大数的小数取模的朴素算法的局限性所提出的,在朴素的方法中我们计算一个数比如5^1003%31是非常消耗我们的计算资源的,在整个计算过程中最麻烦的就是我们的5^1003这个过程缺点1:在我们在之后

2018-01-06 13:21:18 612

原创 CCF NOI 1035.数根

数根是这样定义的:对于一个正整数n,将它的各个数位上的数字相加得到一个新数,如果这个数是一位数,我们就称之为n的数根,否则重复处理直到它成为一个一位数。 例如,n=34,3+4=7,7是一位数,所以7是34的数根。 再如,n=345,3+4+5=12,1+2=3,3是一位数,所以3是345的数根。 对于输入数字n,编程计算它的数根。输入输入正整数n。输出输出n的数

2018-01-06 13:00:33 1480

原创 CCF NOI 1034.钞票兑换

题目描述 将任意给定的整百元钞票,兑换成10元、20元、50元小钞票形式。输出兑换方案总数。 输入 输入需要兑换的钞票总数n。 输出 输出方案总数。 样例输入 100 样例输出 10我们首先想到的就是暴力枚举法,但是,在oj上运行超时了,所以,我们要用数学方法去优化一下。 源代码: 时间复杂度过大,大数据会超时#include

2018-01-06 12:38:43 1217

原创 CCF NOI 1032.输出菱形

输入一个正整数n,输出用1至(2n-1)的数字组成的菱形。输入输入正整数n。输出输出对应的菱形(见样例)。样例输入3样例输出 1 12312345 123 1这题我们不能用一个大循环一步到位,应该分两个循环来分别打印上半部分和下半部分。代码:#include using namespace std;int main(){

2018-01-05 16:51:29 2391 1

原创 CCF NOI 1031.等腰三角形等腰三角形

输入一个正整数n,输出高为n的由*组成的等腰三角形。 输入 输入一个正整数。 输出 输出高为n的由*组成的等腰三角形。 样例输入3样例输出 * ********观察可知,每一行的星号数分别为1,3,5….,我们可用等差数列公式来控制星号输出 代码:#include using namespace std;int main(

2018-01-05 16:33:21 1467

原创 C++学习日记(1月5号)

1.C++11的auto关键字auto关键字的作用是自动类型推断,自动类型推断只能用于单值初始化,而不能用于初始化列表。 C++11的目标是让C++更容易使用,从而让程序员将主要精力放在设计而不是细节上。2.函数传递参数在默认情况下,C++函数按值传递参数,这意味着函数定义中的形参是新的变量,它们被初始化为函数调用所提供的值,因此,C++通过使用拷贝,保护了原始数据的完整性。3.使用函数的3个步骤

2018-01-05 15:29:43 414

原创 CCF NOI 1024.求因子个数

对于任意给定的一个正整数,计算其因数个数。 输入样例: 6 输出样例: 4 说明: 1、2、3、6都是6的因数。因此,输出4。我们开始采用暴力穷举法来解,但发现有俩组答案超时了,所以,我们要对代码进行优化,尽量节省循环次数。 问题分析用穷举法进行计算,尽量减少穷举的次数。若a*b=n,且a>b,则a和b都是n的因子,所以只需要用1到sqrt(n)

2018-01-05 11:40:13 2749

原创 C++学习笔记(1月4号)

cin.getline()函数是处理数组字符串的,其原型为cin.getline(char * , int),第一个参数为一个char指针,第二个参数为数组字符串长度。getline(cin,str)函数是处理string类的函数。第二个参数为string类型的变量。在用getline(cin,str)时需注意,再输入str后需要两个回车才会输出结果,其原因是vc++6.0版本过低

2018-01-05 00:10:41 129

原创 字符串正反连接

题目描述: 所给字符串正序和反序连接,形成新串并输出 输入: 任意字符串(长度<=50) 123abc 输出: 字符串正序和反序连接所成的新字符串 123abccba321继续巧妙的使用str类的倒序函数reverse#include <iostream>#include <string>#include <algorithm>using n

2018-01-05 00:09:23 4290

原创 去掉空格

题目描述: 读入一些字符串,将其中的空格去掉。 输入: 输入为多行,每行为一个字符串,字符串只由字母、数字和空格组成,长度不超过80。输入以“End of file”结束。 输出: 对于每行输入,输出转换后的字符串。我们可以巧妙的利用str类来解决#include <iostream>#include <string>#include <cstring>

2018-01-05 00:07:35 1244

原创 倒序输出杨辉三角

题目描述: Fans喜欢图形,而且喜欢把图形倒过来欣赏。有一次,他看见杨辉三角形 了,觉得很新鲜,于是就把它们大大小小地摆布出来。输入一些整数n(1≤n≤10),读入其每个整数,以该整数为行数,其画出来的倒杨辉三角形(每个数据 占三个字符)就是fans所喜欢欣赏的。Fans是手工做的,你却可以用编程更快捷地做出来,多爽啊! 输入: 5 3 输出: 1

2018-01-04 23:41:35 3394 1

转载 杨辉三角(Pascal Triangle)的几种C语言实现及其复杂度分析

原文链接:https://www.cnblogs.com/clover-toeic/p/3766001.html说明      本文给出杨辉三角的几种C语言实现,并简要分析典型方法的复杂度。     本文假定读者具备二项式定理、排列组合、求和等方面的数学知识。  一  基本概念     杨辉三角,又称贾宪三角、帕斯卡三角,是二项式系数在三角形

2018-01-04 22:34:45 2413

原创 十进制转二进制,格式化输出

描述 将十进制整数转换成二进制数 输入 输入数据中含有不多于50个整数n(-2^16<n<2^16)。 输出 对于每个n,以11位的宽度右对齐输出n值,然后输出 –> ,再然后输出二进制数。每个整数n的输出,独立占一行。 样例输入1 2 0 -12 1 样例输出1 2―->10 0–>0 -12–>

2018-01-04 19:04:46 2394

原创 NOI10004 填充矩形

时间限制: 1000 ms 空间限制: 262144 KB题目描述已知矩形的大小为n×m,现用a×a的正方形填充该矩形。输入三个正整数n,m,a(n,m,a≤10^9),计算至多能填入多少正方形?(正方形可以正好碰到矩形边界,但不能超出矩形外)输入一行三个用一个空格隔开的正整数n,m,a。输出输出能填入正方形的数量。样例输入3 4 1 样例输出12数据范围限制1<=n,m,a≤10^9问题分析这

2018-01-04 14:57:09 4122 1

原创 Python每日两题系列(1月1号)

NO.1 判断101-200之间有多少个素数,并输出所有素数。程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。h = 0leap = 1from math import sqrtfor m in range(101,201): k = int(sqrt(m + 1)) for i in range(

2018-01-03 15:36:50 382

原创 C++学习日记(1月3号)

1.string类虽然string类和c-风格字符串类似,但与数组相比,string与结构更相似,例如可以把一个结构赋给另一个结构,也可以把一个string类赋给另一个string类,可以将结构作为完整的实体传递给函数,也可以将对象作为完整的实体进行传递,如果需要多个字符串,可以声明一个string数组,而不是二维数组。

2018-01-03 12:04:49 240

转载 分治法解乒乓球比赛日程安排问题

乒乓球比赛的日程安排问题:设有n位选手参赛,初赛进行n-1天,每位选手每天必须比赛一次,不能轮空。编程求解赛程安排。分析:1、求n位选手的赛程安排,可采用分治算法的思想,将问题规模不断缩小,比如缩小到8,4,2等规模大小;2、分析2,4,8等小规模时的赛程安排:分治算法主要思想:(1)、若原问题规模大小不便计算,将问题原本

2018-01-02 17:20:16 572

原创 Python每日两题系列(1月2号)

NO.1: 输入三个整数x,y,z,请把这三个数由小到大输出。 程序分析:我们想办法把最小的数放到x上,先将x与y进行比较,如果x>y则将x与y的值进行交换,然后再用x与z进行比较,如果x>z则将x与z的值进行交换,这样能使x最小。分析:我们可以直接运用Python的sort函数对其进行排序,然后输入l = []for i in range(3): x = int(input('int

2018-01-02 16:57:06 503

原创 C++学习日记(1月2号)

1.C-风格字符串和常规char数组的区别字符串有内置的结束字符(包含字符,但不以空值字符结尾的char数组只是数组,而不是字符串)。这意味着不必将字符串的长度作为参数传递给函数,而函数可以使用循环依次检查字符串中的每个字符,直到遇到结尾的空置字符为止。 如,统计某段字符串中某个字符所出现的次数int c_in_str(char *str,char ch){ int cnt=0;

2018-01-02 15:58:16 151

原创 算法学习日记(1月2号)

1.回溯法解彩票号码排列#include <iostream>using namespace std;#define MAXN 4 //设置每一注彩票的位数 #define NUM 7 //设置组成彩票的数字 int num[NUM];int lottery[MAXN];int c=0;void combine(int n, int m)//最外层的循环,从i=n=7开始,每位数字个数

2018-01-02 12:54:58 157

原创 Python每日两题系列(1月1号)

Python每日两题系列(1月1号)NO.1: 一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?分析: 1、则:x + 100 = n2, x + 100 + 168 = m2 2、计算等式:m2 - n2 = (m + n)(m - n) = 168 3、设置: m + n = i,m - n = j,i * j =168,i 和 j 至少一个是偶

2018-01-02 10:23:09 546

转载 理解一般指针和指向指针的指针

理解一般指针和指向指针的指针relation:http://blog.csdn.net/g200407331/article/details/52610175在说指向指针的指针之前,不得不说指向变量的指针。先看如下示例:1. 指向整型指针先看如下示例:View Code 1 #include  2 using namesp

2018-01-01 17:31:51 165

原创 C++学习日记(1月1号)

重点知识整理:1. sizeof对传入函数的数组以及对原数组计算的值为什么会有差异?如:int num[5]={1,2,3,4,5},sizeof num 得到的是20而对传入函数的指针计算: int demo(int arr[]) ,sizeof arr 得到的是4因为sizeof num是计算整个数组的长度,而sizeof arr是计算指针变量的长度。所以:为将数组类型和元素数

2018-01-01 17:30:40 162

100个gdb调试技巧-高清书签版

本书介绍了大量的gdb调试技巧,里面的技巧在开发过程中非常的实用,高清带书签版

2018-07-23

杭电ACM训练营课件

杭电的ACM训练营的课件,涵盖了基本算法,如,贪心,二分,博弈,图论,搜索等内容,适合ACM爱好者以及ACM竞赛者。

2018-07-06

C语言成绩管理系统(含开发文档)

本文件中是使用vs2012开发的学生成绩管理系统,能进行读取,增加,删除,查找,编辑,成绩排序等功能,并附含各个文档的开发文档。

2018-07-06

北大暑期ACM训练营ppt

本资源是北大暑期ACM训练营的全部课件资源,对打ACM比赛或者对算法爱好的人有很大的帮助。

2018-07-06

行列式计算方法小结

本ppt适合复习或学习线性代数行列式的大学生,里面总结了行列式的大部分求解方法。

2018-07-02

计算机网络原理复习ppt

本ppt针对《计算机网络原理》第七版 谢希仁的书做了知识点的详细总结,适合需要复习或者学习网络原理的大学生。

2018-07-02

《C语言趣味编程100例》

《C语言趣味编程100例》高清扫描版,不带书签,适合有一定c语言基础的人阅读

2017-12-27

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除