C++ 基础
文章平均质量分 64
未水
这个作者很懒,什么都没留下…
展开
-
static、const和static const 以及它们的初始化
const定义的常量在函数执行之后其空间会被释放,而static定义的静态常量在函数执行后不会被释放其空间。static 表示的是静态的。类的静态成员函数,成员变量是和类相关的,不是和类的具体对象相关,即使没有具体的对象,也能调用类的静态成员函数,成员变量。一般的静态函数几乎就是一个全局函数,只不过它的作用域限于包含它的文件中。在c++中,static静态成员变量不能在类内部初始化。转载 2012-05-15 00:46:24 · 1029 阅读 · 0 评论 -
poj 3308 最小割
应用到:最小割等于最大流定理技巧:割边的乘积最小,用log转化!!太好了!!#include #include #include #include #include #include #include using namespace std;int m,n,l,s,t;#define N 120#define M 2000const double INF =1000000原创 2013-03-31 20:54:51 · 653 阅读 · 0 评论 -
poj 2057 树形dp
主要是在策略选择上:对于一个节点,它该先往哪个子节点走比较它的两个子节点u和v:房子在u这边的概率为num[u]/ num[1] ,房子在v这边的概率为 num[v]/num[1],分别简化为num[u] ,num[v]先选u:num[u]*go[u] + num[v]*(fail[u]+2+go[v])先选v:num[v]*go[v] + num[u]*(fail[v]+2+go[u原创 2013-03-31 13:47:32 · 628 阅读 · 0 评论 -
hdu4301 状态dp
#include #include #include #include #include #include #include using namespace std;#define N 1050#define mod 100000007int dp[N][N*2][2];int main (){ memset(dp,0,sizeof(dp)); dp[1][原创 2013-03-13 17:35:08 · 672 阅读 · 0 评论 -
poj 1286 polya
gcd里的类型一定要long long,至今想不明白,不然会一直WA#include #include #include #include #include using namespace std;#define ll long longll p[100];ll gcd(ll a,ll b){ if(b==0) return a; else gcd(b,a%原创 2013-03-22 14:07:03 · 563 阅读 · 0 评论 -
hdu4655 yy+推导 多校第六场
1,n-1,2,n-2……这样是最优的难的是给出一个排列怎么求答案暴力不行,要递推了#include #include #include #include #include using namespace std;#define N 1000500#define mod 1000000007#define ll long longint a[N],b[N],n;i原创 2013-08-08 22:56:43 · 824 阅读 · 0 评论 -
windows下C多线程编程用到的一些函数
头文件CreateThread()--CreateThread(NULL, 0, thread2, (void *)(&i), 0, NULL); 把i的地址传给thread2函数,可供调用CreateMutex()--CreateMutex(NULL, FALSE, L"mutex");CreateSemaphore()--CreateSemaphore(NULL, 0, 3, L"custom原创 2013-12-14 16:05:43 · 1426 阅读 · 0 评论 -
readers and writers problem 读者写者问题 写者优先 C++实现
参考http://en.wikipedia.org/wiki/Readers-writers_problem第二类读者写者问题,写优先#include #include #include int readcount, writecount;HANDLE mutex_1; // 限制readcountHANDLE mutex_2; // 限制writecountHANDLE mu原创 2013-12-16 15:04:50 · 5909 阅读 · 0 评论 -
linux下模拟shell的C程序--操作系统作业
dd#include #include #include #include #include #include #include #define N 1000char input[N];char cmd[N],tmp[N];const char sp[]="%U %S %E %F %R %w %W %P";const char pre[]="/usr/bin/ti原创 2013-12-20 00:04:06 · 2621 阅读 · 0 评论 -
poj2186 有向图强连通缩点
真心不能用vector同样的代码,用vector500+ms,用邻接表32ms#include #include #include #include #include #include #include #include using namespace std;int n,m ;#define N 10500#define M 60000//vectore[N];原创 2013-03-13 20:10:50 · 871 阅读 · 0 评论 -
poj 1691 搜索
关键是解决相互制约关系,由数据量很小可知方法一定很水。。。#include #include #include #include #include #include #include #include using namespace std;struct obj{ int ux,uy,dx,dy,c;}p[20];int n;int vis[20];int原创 2013-03-19 09:57:29 · 828 阅读 · 0 评论 -
poj3273+poj3258 二分易错点
1.关于二分的两种写法一种是 while(left{if()left=mid+1;else right=mid;}ans=left;这是我比较喜欢的一种还有一种是while(left{if()left=mid+1;else right=mid-1;}ans=mid;注意两种的ans是不同的2. 假如二分要求的答案是原创 2013-03-12 19:43:13 · 1194 阅读 · 0 评论 -
HEAP CORRUPTION错误
昨天遇到一个HEAP CORRUPTION错误,花了好多的时间才找到原因,现总结如下,希望大家遇到同样的问题的时候,能迅速定位错误的代码。错误的现象是这样的:在程序的开始处我申请了一块内存,中间对其进行了一些操作,在程序结束处,释放内存的时候,引起错误:HEAP CORRUPTION DETECTED:after Normal block(#***) at 0x****.C转载 2012-05-12 19:50:18 · 1681 阅读 · 0 评论 -
c++文件流基本用法(fstream, ifstream, ostream)
c++的文件流处理其实很简单,前提是你能够理解它。文件流本质是利用了一个buffer中间层。有点类似标准输出和标准输入一样。c++ IO的设计保证IO效率,同时又兼顾封装性和易用性。本文将会讲述c++文件流的用法。有错误和疏漏的地方,欢迎批评指证。需要包含的头文件: 名字空间: std也可以试用fstream提供了三个类,用来实现c++对文件的操作。(文件的创建,读写)。转载 2012-05-12 19:38:31 · 2345 阅读 · 1 评论 -
C++中的文件输入/输出ios:xx eat Processing(zz)
掌握输入/输出流 在这一章里,我会提及一些有用的函数。我将为你演示如何打开一个可以同时进行读、写操作的文件;此外,我还将为你介绍其它打开文件的方法,以及如何判断打开操作是否成功。因此,请接着往下读!到目前为止,我已为你所展示的只是单一的打开文件的途径:要么为读取而打开,要么为写入而打开。但文件还可以以其它方式打开。迄今,你应当已经认识了下面的方法: ifstream OpenF转载 2012-05-14 14:35:09 · 2016 阅读 · 1 评论 -
cin、cin.get()、cin.getline()、getline()、gets()等函数的用法
学C++的时候,这几个输入函数弄的有点迷糊;这里做个小结,为了自己复习,也希望对后来者能有所帮助,如果有差错的地方还请各位多多指教(本文所有程序均通过VC 6.0运行)转载请保留作者信息;1、cin1、cin.get()2、cin.getline()3、getline()4、gets()5、getchar()1、cin>> 用法1:最基本,也是最常转载 2012-05-12 19:46:28 · 473 阅读 · 0 评论 -
vector C++详细用法
vector是C++标准模板库中的部分内容,它是一个多功能的,能够操作多种数据结构和算法的模板类和函数库。vector之所以被认为是一个容器,是因为它能够像容器一样存放各种类型的对象,简单地说,vector是一个能够存放任意类型的动态数组,能够增加和压缩数据。 为了可以使用vector,必须在你的头文件中包含下面的代码: #include vector属于std命名域的,因此需转载 2012-05-16 00:14:06 · 393 阅读 · 0 评论 -
关于scanf的一些转载
转载自:http://blog.chinaunix.net/u3/99423/showart_2100968.htmlscanf函数我曾经在这个函数上犯过不少错误,也看到别人犯过的错误,记下来,提醒自己不要重蹈覆辙了。如果对你有用,那就更好了:)如果你发现文章中有错误,欢迎你不吝赐教。希望和大家一起学习!(我的邮箱:[email protected] blog:http://转载 2012-05-12 19:56:21 · 483 阅读 · 0 评论 -
sscanf,sscanf_s及其相关用法
http://www.cnblogs.com/kex1n/archive/2011/06/09/2076501.html #include 定义函数 int sscanf (const char *str,const char * format,........);函数说明 sscanf()会将参数str的字符串根据参数format字符串来转换并格式化数据。格式转换形式请参考转载 2012-12-01 11:35:01 · 660 阅读 · 0 评论 -
hdu 4300
从(len+1)/2开始枚举,即大于等于中间点处,从len/2开始就会WA不止,这种情况是由于不同的密文字母可能对应同个明文,造成最终明文和密文overlapping together#include #include #include #include #include #include #include using namespace std;char t[2原创 2013-03-13 15:41:47 · 900 阅读 · 0 评论 -
windows下C++的socket编程入门--文件传输
http://msdn.microsoft.com/en-us/library/windows/desktop/ms740632(v=vs.85).aspx招着官方教程一步步做全部代码再后面可以直接找到运行:先运行server的exe,再运行client的exe原创 2014-01-09 01:10:23 · 21805 阅读 · 4 评论