自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

mfcheer

已搬家至:www.mfcheer.com

  • 博客(55)
  • 资源 (1)
  • 收藏
  • 关注

转载 WJMZBMR在成都赛区开幕式上的讲话

各位选手,各位教练,大家好,我是来自清华大学交叉信息学院的陈立杰,今天很荣幸站在这里代表全体参赛选手发言。对于我来说,这是我第一次正式参加ACM的比赛。不过我跟ACM之间的缘分,大概在很早的时候就已经存在了。      我还依稀记得,在我初三的时候,晚上我的一个好朋友在用手机跟妹子聊天,而我在用手机看OI和ACM的题目。自习课上我的那个朋友跟妹子一起学习,而我则翘课想去机房,有时候机房老师不让

2014-10-31 10:55:03 1793

原创 给定两个正整数(二进制形式表示)A和B,问把A变为B需要改变多少位(bit)?也就是说,整数A和B的二进制表示中有多少位是不同的?

解法一:举例说明,为了减少复杂度,就使用八位二进制吧。设 A = 0010 1011, B = 0110 0101.1. C = A & B = 0010 0001;2. D = A | B = 0110 1111;3. E = C ^ D = 0100 1110;//异或运算4. 结果E中有4个1,那么也就是说将A变成B,需要改变4位(bit)。至于如何判断E的二进制表示中有

2014-10-31 10:53:25 1943

原创 算法-求二进制数中1的个数

int BitCount(unsigned int n){ unsigned int c =0 ; // 计数器 while (n >0) { if((n &1) ==1) // 当前位是1 ++c ; // 计数器加1 n >>=1 ; // 移位 } return c ;}2. 快速移位+计

2014-10-31 10:51:13 577

原创 斯特灵公式

计算阶乘位数,利用斯特灵公式:一般来说,当n很大的时候,n阶乘的计算量十分大,所以斯特灵公式十分好用,而且,即使在n很小的时候,斯特灵公式的取值已经十分准确。    公式(1)推导:     ln(n!)=0.5*ln(2*PI*n)+n*ln(n/e)             =0.5*ln(2*PI*n)+n*ln(n)-n    

2014-10-31 10:48:03 647

原创 hdu-1004

map的应用#include#include#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;int main() { int n; map s; while

2014-10-31 10:44:31 499

原创 平面分割问题

平面分割问题 (1) n条直线最多分平面问题题目大致如:n条直线,最多可以把平面分为多少个区域。析:可能你以前就见过这题目,这充其量是一道初中的思考题。但一个类型的题目还是从简单的入手,才容易发现规律。当有n-1条直线时,平面最多被分成了f(n-1)个区域。则第n条直线要是切成的区域数最多,就必须与每条直线相交且不能有同一交点。 这样就会得到n-1个交点。这些交

2014-10-31 10:41:39 634

原创 C语言:位异或运算符^

C语言:位异或运算符^ 位运算符家族中,最常用的,某过于异或运算符。异或运算符是指: 参与运算的两个值,如果两个相应位相同,则结果为0,否则为1。即:0^0=0, 1^0=1, 0^1=1, 1^1=0例如:10100001^00010001=101100000^0=0,0^1=1    可理解为: 0异或任何数,其结果=任何数1^0=1,1

2014-10-31 10:39:37 15490 1

原创 排错公式

排错公式 错排:n封信放入n个信封,要求全部放错,共有多少种放法,记n个元素的错排总数为f(n)假设有n封信,第一封信可放在(2-n)的任一个信封里,共n-1种放法,设第一封信放在了第k个信封里,若此时第k封信放在了第1个信封里,则只要将剩下的n-2错排,即f(n-2),若第k封信没有放在了第1个信封里,可将第1封信的位置看成是“第k个位置”,即将n-1封信错排,即为f

2014-10-31 10:36:14 1467

原创 poj-3278

广搜简单题#include #include #include #include #include #include #include using namespace std;int n,m;int vis[100010];int main (){ while (scanf("%d%d",&n,&m)!=EOF) { for (int

2014-10-31 10:01:20 559

原创 hdu-1422

刚开始没注意访问顺序 用的贪心 WA了 后来仔细读题

2014-10-30 22:09:55 540

原创 hdu-1372

广度优先搜索模板题

2014-10-30 21:01:43 488

原创 hdu-1754

#include#include#include#include#include#include#include#include#include#include#include#include#include #include #include #include using namespace std;int max (int a,int b){

2014-10-29 21:09:25 638

原创 hdu-1166

线段树点操作#include#include#include#include#include#include#include#include#include#include#include#include#include #include #include #include using namespace std;struct node{ i

2014-10-29 21:06:58 567

原创 背包专题

一、01背包问题 (先枚举物品,再逆序枚举容量)     AC 1、Hdu 2602 Bone Collector 非常常规的01背包问题,用一维和二维数组都可以做,一维快相当多。解题报告    AC 2、Poj 3624 Charm Bracelet  赤裸裸的01背包问题。解题报告     AC 3、Hdu 2546 饭卡 n种菜选若干种使剩下的钱最少,背包容量是开始时的钱,物品体

2014-10-29 21:00:31 688

原创 hdu-1789

贪心算法,把作业按照

2014-10-29 15:47:16 581

原创 light-1001

#include #include #include #include #include using namespace std;int main(){ int t; scanf("%d",&t); while(t--) { int n; scanf("%d",&n); int a=0,b=n;

2014-10-29 11:10:17 510

原创 light oj-1000

#include #include #include #include #include using namespace std;int main(){ int t; scanf("%d",&t); int s=1; while (t--) { int a ,b; scanf ("%d%d",&a,&b)

2014-10-29 11:07:45 376

原创 hdu-1176

数塔DP的变形#include #include #include #include #include using namespace std;int p[100101][15];int main (){ int n; int x,t,t1; while (scanf ("%d",&n)!=EOF && n) { t

2014-10-28 18:46:13 504

原创 hdu-2545

并查集的扩展应用,求节点到根的距离

2014-10-28 09:08:04 524

原创 hdu-1087

最大递增子段和

2014-10-28 07:52:59 517

原创 poj-2395

求最小生成树的最大边 ,

2014-10-27 21:49:40 478

原创 hdu-1257

刚开始单纯的以为 a[i] > a[i]

2014-10-27 16:55:42 592

原创 hdu-1159【最长公共子序列】

经典DP,最长公共子序列,状态转移方程:dp[i][j]

2014-10-26 16:15:01 418

原创 hdu-2571

入门的DP 可是我更入门...根据题目要求,可以

2014-10-26 09:51:14 404

原创 hdu-5019

第二次做这个题了...#include #include #include #include using namespace std;long long gcd(long long a, long long b){ long long r = a%b; while (r) { a = b; b = r;

2014-10-25 17:10:48 545

原创 C++单例模式【设计模式】(转)

单例模式也称为单件模式、单子模式,可能是使用最广泛的设计模式。其意图是保证一个类仅有一个实例,并提供一个访问它的全局访问点,该实例被所有程序模块共享。单例模式通过类本身来管理其唯一实例,这种特性提供了解决问题的方法。唯一的实例是类的一个普通对象,但设计这个类时,让它只能创建一个实例并提供对此实例的全局访问。唯一实例类Singleton在静态成员函数中隐藏创建实例的操作。习惯上把这个成员函数叫做

2014-10-25 10:38:37 469

原创 判断互质数的方法

一、概念判断法  公约数只有1的两个数叫做互质的数。根据互质数的概念。可以对一组数进行判断。如,4和9的公约数只有1,所以它们是互质数。   二、规律判断法         根据互质数的定义,可总结出一些规律,利用这些规律可迅速判断一组数是否互质。        (1)两个不相同的质数一定是互质数。例如,19和13是互质数。        (2)两个连续的自然数一定

2014-10-25 01:58:28 6567

原创 poj-2785

题目连接 :http://poj.org/problem?id=2785折半枚举就OK了#include #include #include #include #include #include #include #include #include using namespace std;int a[4444],b[4444],c[4444],d[4444]

2014-10-24 18:39:16 571

原创 poj-3061

首先计算出在第 i 项的和 然后快速枚举

2014-10-24 15:02:31 475

原创 poj-1852

转换思想  两只蚂蚁碰头反转时  相当于直接

2014-10-24 00:53:03 408

原创 poj-3069

贪心算法

2014-10-24 00:23:54 497

原创 poj-2393

简单的贪心  开始的时候考虑麻烦了

2014-10-23 16:22:35 439

原创 数据结构 课设一:停车场管理

停车场管理【问题描述】            设停车场是一个可停放n辆汽车的狭长通道,且只有一个大门可供   汽车进出。汽车在停车场内按车辆到达时间的先后顺序,依次由北向   南排列(大门在最南端),若停车场内已停满n辆汽车,则后来的汽车   只能在门外的便道上等候,一旦有车开走,则排在便道上的第一辆车即   可开入;当停车场内某辆车要离开时,在它之后进入的车辆必须先退出

2014-10-22 01:57:24 6448 5

原创 等概率洗牌算法

遍历数组,遇到第i个元素时,产生一个i到n-1之间的随机数,然后两个位子的数互换。void shuff(int *ap, int n){ int i; for (i=0; i<n; i++) { int t = rand()%(n-i)+i; swap(a[i],a[t]); }}

2014-10-22 00:13:10 740

原创 源代码到可执行文件过程

编译,编译程序读取源程序(字符流),对之进行词法和语法的分析,将高级语言指令转换为功能等效的汇编代码,再由汇编程序转换为机器语言,并且按照操作系统对可执行文件格式的要求链接生成可执行程序。源代码-->预处理-->编译-->优化-->汇编-->链接-->可执行文件Source--(编译)--> Assembly--(汇编)-->Obj--(链接)-->PE/ELF1.编译预处理读取c

2014-10-21 23:59:43 612

原创 利用1~7的随机数,产生一个1~10的随机数

必须是等概率的。int rand10(){ int i = rand7() - 1; int j = rand7() - 1; int num = rand7()*i + j; if ( num >= 40 ) return rand10(); else return num%10 + 1;}这题一开始我做的时候,我以为直接对这个ra

2014-10-21 23:42:18 2256 1

原创 二叉树层序前序中序后序遍历,深度

层序利用队列:void PrintFromTopToBottom(BinaryTreeNode *pTreeRoot){ if(!pTreeRoot) return; std::queue queTreeNode; dequeTreeNode.push_back(pTreeRoot); while(!queTreeNode.em

2014-10-21 23:30:17 498

原创 poj-2456

二分搜索:

2014-10-21 17:54:08 492

原创 poj-1064

二分搜索 : #include #include #include #include #include #include #include #include #include using namespace std;int n;int k;double p[20000];int c (double x){ int num = 0; fo

2014-10-21 16:36:23 525

原创 hdu-1028 Ignatius and the Princess III 【母函数】

母函数:

2014-10-21 00:09:02 403

g++编译器for c++

g++编译器 c++ this is a program for C++

2014-10-24

空空如也

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

TA关注的人

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