【C/c++ 知识点】
xia842655187
这个作者很懒,什么都没留下…
展开
-
STL 中 sort 函数用法简介
做 ACM 题的时候,排序是一种经常要用到的操作。如果每次都自己写个冒泡之类的 O(n^2) 排序,不但程序容易超时,而且浪费宝贵的比赛时间,还很有可能写错。 STL 里面有个 sort 函数,可以直接对数组排序,复杂度为 n*log2(n) 。使用这个函数,需要包含头文件#include 。这个函数可以传两个参数或三个参数。第一个参数是要排序的区间首地址,第二个参数是原创 2015-07-30 09:04:50 · 484 阅读 · 0 评论 -
HDU 1003 Max Sum(经典DP,)
Max Sum DescriptionGiven a sequence a[1],a[2],a[3]......a[n], your job is to calculate the max sum of a sub-sequence. For example, given (6,-1,5,4,-7), the max sum in this sequence原创 2016-05-06 19:45:51 · 543 阅读 · 0 评论 -
HDU 2069 & UVA 674 Coin Change(换硬币 dp 入门经典水题,背包问题)
Coin ChangeTime Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u DescriptionSuppose there are 5 types of coins: 50-cent, 25-cent, 10-cent, 5-...原创 2016-05-06 20:35:02 · 2623 阅读 · 8 评论 -
C++ STL 之 next_permutation 的用法(下一个序列函数,按字典序排)
这是一个求一个排序的下一个排列的函数,可以遍历全排列,要包含头文件下面介绍一下next_permutation函数的用法 与之完全相反的函数还有prev_permutation (1)int类型的next_permutation int main(){int a[3];a[0]=1;a[1]=2;a[2]=3;do{cout原创 2015-07-28 15:20:27 · 2474 阅读 · 0 评论 -
计算几何算法概览
计算几何算法概览一、引言 计算机的出现使得很多原本十分繁琐的工作得以大幅度简化,但是也有一些在人们直观看来很容易的问题却需要拿出一套并不简单的通用解决方案,比如几何问题。作为计算机科学的一个分支,计算几何主要研究解决几何问题的算法。在现代工程和数学领域,计算几何在图形学、机器人技术、超大规模集成电路设计和统计等诸多领域有着十分重要的应用原创 2016-05-07 09:29:15 · 439 阅读 · 0 评论 -
正多变形的滚动与旋轮线下方的面积(有趣的几何问题)
正多变形的滚动与旋轮线下方的面积问题描述: 一个圆盘在地面上滚动一周,那么圆周上一点所形成的轨迹就叫做旋轮线(或者摆线). 旋轮线下方的面积是多少? 推广至正多边形, 旋轮线下方的面积又是多少? 问题分析: 1.在问题是圆的情况下, 显然我们可以用参数方程的方法求得坐标: (x-r原创 2016-05-07 09:27:15 · 1556 阅读 · 0 评论 -
线段交叉判断(快速排斥实验 + 跨立实验)
第1 步:快速排斥试验,如果分别以P1P2 ,P3P4 为对角线做矩形,而这两个矩形不相交,则这两条线段肯定不相交,如下左图;即使两个矩形相交,这两条线段也不一定相交,如下右图,这时再用第2 步判断; 表示成语句,即两个矩形相交当且仅当下列式子为真:(max(x1,x2)≥mi原创 2016-05-21 10:17:40 · 11002 阅读 · 1 评论 -
BSG白山极客挑战赛 数数字
数数字System Message (命题人)yule_z (测试)基准时间限制:1 秒 空间限制:262144 KB 分值: 20统计一下 aaa ⋯ aaan个a × b 的结果里面有多少个数字d,a,b,d均为一位数。样例解释:3333333333*3=9999999999原创 2016-05-21 11:37:06 · 516 阅读 · 0 评论 -
BSG白山极客挑战赛 - C B君的圆锥
BSG白山极客挑战赛 B君的圆锥B君要用一个表面积为S的圆锥将白山云包起来。B君希望包住的白山云体积尽量大,B君想知道体积最大可以是多少。注意圆锥的表面积包括底面和侧面。Input一行一个整数,表示表面积S。(1 Output一行一个实数,表示体积。Input示例8Output示例原创 2016-05-21 11:11:38 · 665 阅读 · 0 评论 -
大牛的《背包九讲》
大牛的《背包九讲》P01: 01背包问题 题目 有N件物品和一个容量为V的背包。第i件物品的费用是c[i],价值是w[i]。求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和最大。 基本思路 这是最基础的背包问题,特点是:每种物品仅有一件,可以选择放或不放。 用子问题定义状态:即f[i][v]表示前i件物品恰放入一个容量为v的背包原创 2016-05-06 20:42:10 · 1320 阅读 · 0 评论 -
素数打表(方法汇总)
筛选法素数打表:#include #include #include #include #include #include #include using namespace std;/* * 筛选法素数打表 */const int MAXN = 100;bool is_prime[MAXN];void init(){ memset(is_prime,tr原创 2016-08-08 10:05:32 · 491 阅读 · 0 评论 -
CSU 1335 高桥和低桥
高桥和低桥 CSU - 1335 这道题如果按照正常的思路一个一个去判断,回头看看题目中的数据范围,你会发现这个方法是不可行的,必然会超时的。那只能转换其他方法了,我们可以想一想,桥的高低是不同的,题目给的数据是无规律的,如果按照题目中的无规律的数据处理的话,只能将每座桥都遍历一遍,这样无疑是很耗时的,但是如果我们将无规律变成有规律呢?那每次水位原创 2017-02-22 21:36:05 · 817 阅读 · 0 评论 -
C语言的字符数组(字符串)的定义与初始化
1、字符数组的定义与初始化字符数组的初始化,最容易理解的方式就是逐个字符赋给数组中各元素。[cpp] view plain copychar str[10]={ 'I',' ','a','m',' ',‘h’,'a','p','p','y'}; 即把10个字符分别赋给str[0]到str[9]10个元素如果花括号中提供的字符个数转载 2017-03-20 17:33:49 · 21977 阅读 · 0 评论 -
OJ提交题目中的语言选项里G++与C++的区别
根本差别:hduoj上,g++用的是mingw,c++用的是msvc;mingw 的 I/O 速度比较慢,这也是一些人用G++超时,而C++ AC的原因差别一:1、输出double类型时,如果采用G++提交,scanf采用%lf,prinf采用%f,否则会报错2、使用GCC/G++的提醒:对于64位整数, long long int 和 __int64 都是支持并原创 2016-05-06 09:55:09 · 1310 阅读 · 0 评论 -
UVA 111 History Grading (最长公共子序列)
History GradingTime Limit:3000MS Memory Limit:0KB 64bit IO Format:%lld & %lluBackgroundMany problems in Computer Science involve maximizing some measure according to constraints.原创 2016-04-20 19:21:22 · 1136 阅读 · 0 评论 -
HDU 5672 String(尺取法)
StringDescriptionThere is a string S.S only contain lower case English character.(10 \leq length(S) \leq 1,000,000) How many substrings there are that contain at least k(1 \leq k原创 2016-04-30 18:28:39 · 481 阅读 · 0 评论 -
STL 中 qsort 函数七种用法简介
七种 qsort 排序方法 一、对 int 类型数组排序 int num[100]; Sample: int cmp ( const void *a , const void *b ) { return *(int *)a - *(int *)b; } qsort(num,100,sizeof(num[0]),cmp); 二、对 char原创 2015-07-30 09:08:02 · 475 阅读 · 0 评论 -
C 语言中 sscanf() 函数的用法
在我的学习过程中,从文件读取数据是一件很麻烦的事,所幸有sscanf()函数。 C语言函数sscanf()的用法sscanf() - 从一个字符串中读进与指定格式相符的数据. 函数原型: int sscanf( string str, string fmt, mixed var1, mixed var2 ... ); int scanf( c原创 2015-07-30 08:18:27 · 490 阅读 · 0 评论 -
C/C++ — memset() 函数详解及其作用介绍
功 能 将s所指向的某一块内存中的每个字节的内容全部设置为ch指定的ASCII值, 块的大小由第三个参数指定,这个函数通常为新申请的内存做初始化工作, 其返回值为指向S的指针。memset()函数原型是extern void *memset(void *buffer, int c, int count) buffer:为指针或是数组, c:原创 2015-08-03 11:16:43 · 2161 阅读 · 0 评论 -
hdu 3466 Proud Merchants (排序的dp)
/*HDU 3466需要排序的01背包*/hdu 3466 Proud MerchantsProblem DescriptionRecently, iSea went to an ancient country. For such a long time, it was the most wealthy and powerful kingdom in the world. As a result, the people in this country are still very prou原创 2015-08-04 15:41:16 · 1026 阅读 · 2 评论 -
C/C++ 语言中 sprintf() 函数的用法
sprintf 字符串格式化命令,主要功能是把格式化的数据写入某个字符串中。sprintf 是个变参函数。 中文名 字符串格式输出 外文名 string print format 外语缩写 sprintf 主要功能 把格式化的数据写入某个字符串中 头文件 stdio.h 原 型 int sprintf 返回值原创 2015-08-06 19:30:25 · 743 阅读 · 0 评论 -
HDU 1002 A + B Problem II (大数加法)
A + B Problem II Problem DescriptionI have a very simple problem for you. Given two integers A and B, your job is to calculate the Sum of A + B.原创 2015-09-28 11:09:56 · 499 阅读 · 0 评论 -
C/C++ 之 fill ()的运用及与memset()的区别
fill()函数参数:fill(first,last,val); // first 为容器的首迭代器,last为容器的末迭代器,val为将要替换的值。如:要将数组a中的前100项的值赋值为1;#include <iostream>#include <algorithm>#include <cstring>using namespac...原创 2015-10-19 20:01:55 · 4821 阅读 · 0 评论 -
C/C++ 位运算解析
位运算,我们或许用的比较少,但是如果用到的时候你发现不会用的时候,将是十分头疼的转自:http://www.linuxidc.com/Linux/2014-03/98362.htm老实说,我对+ = * / % && || ==一些比较简单的运算符比较熟悉。对位运算就陌生了,主要用的少。我觉得高手用的会比较多,因为位运算速度比较快。位运算应该适用于大多数的语转载 2015-10-19 20:29:45 · 329 阅读 · 0 评论 -
STL中list的使用:
STL中的list就是一双向链表,可高效地进行插入删除元素。现总结一下它的操作。文中所用到两个list对象c1,c2分别有元素c1(10,20,30) c2(40,50,60)。还有一个list::iterator citer用来指向c1或c2元素。list对象的声明构造():A. listc0; //空链表B. listc1(3); //建一个含三个默认值是0原创 2015-07-30 09:12:13 · 415 阅读 · 0 评论 -
int ,long,long long 的范围
unsigned int 0~4294967295 int 2147483648~2147483647 unsigned long 0~4294967295long 2147483648~2147483647long long的最大值:9223372036854775807long long的最小值:-9223372036854775808unsigned long原创 2016-03-17 13:14:20 · 678 阅读 · 0 评论 -
HDU 5671 Matrix (矩阵操作)
Matrix Time Limit: 3000/1500 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others)Problem DescriptionThere is a matrix MM that has nn rows and mm columns (1 \leq n \leq 1000 ,1 \原创 2016-04-22 21:15:19 · 521 阅读 · 0 评论 -
NBUT 1462 台球碰撞(物理运动)
台球碰撞Description在平面直角坐标系下,台球桌是一个左下角在(0,0),右上角在(L,W)的矩形。有一个球心在(x,y),半径为R的圆形母球放在台球桌上(整个球都在台球桌内)。受撞击后,球沿极角为a的射线(即:x正半轴逆时针旋转到此射线的角度为a)飞出,每次碰到球桌时均发生完全弹性碰撞(球的速率不变,反射角等于入射角)。如果球的速率为v,s原创 2016-04-30 17:38:33 · 971 阅读 · 0 评论 -
二叉树的建立及遍历(先序遍历、中序遍历、后续遍历、层次遍历)
数据结构学过有一段时间了,太长时间没有写代码,基本上都忘个差不多了,最近用到了,今天重新复习了一下,写个二叉树小汇总二叉树的建立①:(用扩展先序遍历序列创建二叉树)#include #include #include #include using namespace std;typedef struct Node{ char data; struct Node *原创 2017-03-19 17:52:08 · 1656 阅读 · 0 评论