自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(34)
  • 收藏
  • 关注

原创 名人博客和习题网站

高手的Blog 及ACM 好的网站2007-07-27 18:47http://blog.cs.swust.edu.cn/index.php?op=ViewArticle&articleId=676&blogId=68http://hi.baidu.com/gchrist/blog/item/2a89343fbd1d20ec54e723ff.htmlhttp://princetonboy.ycul

2010-05-28 16:51:00 2041

原创 感慨良多

前天晚上回去,本想敲几个代码,又怕吵醒宿舍里睡觉的同学,只好到各校的BBS上去逛逛,于是看到了下面两张图。 这两张图都是AlexanderYi发的,我也不清楚他叫什么名字 只知道他是dwyak的队友。 dwyak我知道,真名戴文渊,上海交大ACM-ICPC代表队队员、队长、教练,先后获得2004年第29届ACM国际大学生程序设计竞赛亚洲区预选赛台北赛区冠军、日本赛区冠军,2005年第29届ACM国

2010-05-28 16:43:00 573

原创 位运算(实战篇)

下面分享的是我自己写的三个代码,里面有些题目也是我自己出的。这些代码都是在我的Pascal时代写的,恕不提供C语言了。代码写得并不好,我只是想告诉大家位运算在实战中的应用,包括了搜索和状态压缩DP方面的题目。其实大家可以在网上找到更多用位运算优化的题目,这里整理出一些自己写的代码,只是为了原创系列文章的完整性。这一系列文章到这里就结束了,希望大家能有所收获。    Matrix67原创,转贴请注明

2010-05-18 09:03:00 393

原创 位运算(技巧)

n皇后问题位运算版    n皇后问题是啥我就不说了吧,学编程的肯定都见过。下面的十多行代码是n皇后问题的一个高效位运算程序,看到过的人都夸它牛。初始时,upperlim:=(1 shl n)-1。主程序调用test(0,0,0)后sum的值就是n皇后总的解数。拿这个去交USACO,0.3s,暴爽。procedure test(row,ld,rd:longint);var      pos,p:lo

2010-05-18 09:03:00 440

原创 位运算(进阶篇1)

二进制中的1有奇数个还是偶数个    我们可以用下面的代码来计算一个32位整数的二进制中1的个数的奇偶性,当输入数据的二进制表示里有偶数个数字1时程序输出0,有奇数个则输出1。例如,1314520的二进制101000000111011011000中有9个1,则x=1314520时程序输出1。var   i,x,c:longint;begin   readln(x);   c:=0;   for i

2010-05-18 09:02:00 411

原创 位运算(基础篇)

什么是位运算?    程序中的所有数在计算机内存中都是以二进制的形式储存的。位运算说穿了,就是直接对整数在内存中的二进制位进行操作。比如,and运算本来是一个逻辑运算符,但整数与整数之间也可以进行and运算。举个例子,6的二进制是110,11的二进制是1011,那么6 and 11的结果就是2,它是二进制对应位进行逻辑运算的结果(0表示False,1表示True,空位都当0处理):     110

2010-05-18 09:01:00 412

原创 ACM c函数大全

函数名: abs 功  能: 求整数的绝对值用  法: int abs(int i);程序例:#include #include int main(void){  int number = -1234;  printf("number: %d  absolute value: %d/n", number, abs(number));  return 0;}函数名: atof功  能: 把字

2010-05-18 08:59:00 767

原创 C++常量范围

有时要在程序中设置一个大的整数表示正的无穷大,熟悉PASCAL的人都知道有两个经常用到的符号常量叫MAXINT和MAXLONGINT。C++中该怎么办呢?其实在头文件limits中有关于各种整型常量的取值范围和最大整型和最小整型的定义。例如,                |                                   signed                    

2010-05-18 08:48:00 833

原创 一键设置IP

一、原型:extern void *malloc(unsigned int num_bytes);头文件:#include 或 #include (注意:alloc.h 与 malloc.h 的内容是完全一致的。)功能:分配长度为num_bytes字节的内存块说明:如果分配成功则返回指向被分配内存的指针,否则返回空指针NULL。当内存不再使用时,应使用free()函数将内存块释

2010-05-18 08:47:00 486

原创 malloc

一、原型:extern void *malloc(unsigned int num_bytes);头文件:#include 或 #include (注意:alloc.h 与 malloc.h 的内容是完全一致的。)功能:分配长度为num_bytes字节的内存块说明:如果分配成功则返回指向被分配内存的指针,否则返回空指针NULL。当内存不再使用时,应使用free()函数将内存块释

2010-05-18 08:45:00 466 2

原创 acm分类

acm.pku.edu.cn1、 排序1423, 1694, 1723, 1727, 1763, 1788, 1828, 1838, 1840, 2201, 2376, 2377, 2380, 1318, 1877, 1928, 1971, 1974, 1990, 2001, 2002, 2092, 2379,1002(需要字符处理,排序用快排即可) 1007(稳定的排序) 2159(题意较难懂)

2010-04-26 22:04:00 363

原创 杭电动态规划习题

Robberies http://acm.hdu.edu.cn/showproblem.php?pid=2955 背包;第一次做的时候把概率当做背包(放大100000倍化为整数):在此范围内最多能抢多少钱 最脑残的是把总的概率以为是抢N家银行的概率之和… 把状态转移方程写成了f[j]=max{f[j],f[j-q[i].v]+q[i].money}(f[j]表示在概率j之下能抢的大洋);正确的方程

2010-04-25 21:20:00 1772

原创 几种算法

几种算法2010-01-22 22:17                                          NO.1 贪心算法 1 在对问题求解时,总是作出在当前看来是最好的选择。也就是说,不从整体上加以考虑,它所作出的仅仅是在某种意义上的局部最优解(是否是全局最优,需要证明)。2 基本步骤:1、从问题的某个初始解出发。2、采用循环语句,当可以向求解目标

2010-04-25 21:19:00 440

原创 hd1005

#include int main(){ int f[100]; long A,B,n; int r,j; f[0]=f[1]=1; scanf("%d%d%ld",&A,&B,&n);//cin >> A >> B >> n; while(A&&B&&n) {  int i=2;  r = 7;  while(1)  {   if(i==n)    break;   f[i] = (A*f[i-

2010-04-25 16:17:00 707

原创 hd1003

#includeint main(){ int n,m,i,j,k; int a[100001]; int st,end; int maxsum,thissum; scanf("%d",&n); for(k=1;k {  scanf("%d",&m);  for(i=0;i  {   scanf("%d",&a[i]);  }        for(i=0;i  {   thissum = 0; 

2010-04-25 16:07:00 552

原创 汉字

#include #include using namespace std;int first(unsigned char ch) { if(ch >= 0xb0 && ch   return 1; else   return 0;}int second(unsigned char ch) { if(ch >= 0xa1 && ch   return 1; else   return 0;}v

2010-04-24 21:31:00 420

原创 input and putput

ACM竞赛之输入输出描述字符串的输入输出处理。 输入第一行是一个正整数N,最大为100。之后是多行字符串(行数大于N),  每一行字符串可能含有空格,字符数不超过1000。输出先将输入中的前N行字符串(可能含有空格)原样输出,再将余下的字符串(不含有空格)以空格或回车分割依次按行输出。每行输出之间输出一个空行。样例输入2www.njupt.edu.cn NU

2010-04-24 21:30:00 667

原创 ACM输入输出

ACM竞赛之输入输出描述字符串的输入输出处理。 输入第一行是一个正整数N,最大为100。之后是多行字符串(行数大于N),  每一行字符串可能含有空格,字符数不超过1000。输出先将输入中的前N行字符串(可能含有空格)原样输出,再将余下的字符串(不含有空格)以空格或回车分割依次按行输出。每行输出之间输出一个空行。样例输入2www.njupt.edu.cn NU

2010-04-21 17:14:00 2326

原创 信息数字化2

题目1四名专家对四款赛车进行了评论:A说:2号赛车是最好的。B说:4号赛车是最好的。C说:3号赛车不是最好的。D说:B说错了。事实上只有一款赛车最佳,且只有一名专家的评论是正确的。算法思想:有4个bool型的数值相加,当且仅当只有一个正确时,即有1个等于1.其他3个等于0,这时表示只有一位专家说对了,这          是输出的m就是最好的赛车。试用C语言编程求解: 1)#inclu

2010-04-11 17:58:00 715

原创 第二大的数

#includevoid main(){   int find_sec_max(int data[],int count);   int a[] = {2,4,6,8,7,2,5};   printf("%d",find_sec_max(a,5));}static int MINNUMBER =  -32767;int find_sec_max( int data[] , int count)//

2010-04-11 17:57:00 426

原创 矩阵的算法

(1)矩阵的加、减运算 C(i,j)=a(i,j)+b(i,j) 加法 C(i,j)=a(i,j)-b(i,j) 减法 (2)矩阵相乘 (矩阵A有M*L个元素,矩阵B有L*N个元素,则矩阵C=A*B有M*N个元素)。矩阵C中任一元素 (i=1,2,…,m; j=1,2,…,n) #define M 2 #define L 4 #define N 3 void mv(int a[M][L], int

2010-04-11 17:56:00 671

原创 歌巴德猜想

任意一个大于等于6的偶数都可以分解为两个素数之和) 基本思想:n为大于等于6的任一偶数,可分解为n1和n2两个数,分别检查n1和n2是否为素数,如都是,则为一组解。如n1不是素数,就不必再检查n2是否素数。先从n1=3开始,检验n1和n2(n2=N-n1)是否素数。然后使n1+2 再检验n1、n2是否素数,… 直到n1=n/2为止。   利用上面的prime函数,验证哥德巴赫猜想的程序代码如下

2010-04-11 17:55:00 901

原创 最大子序列

#includeint MaxSubSum(int a[],int n){ int i,j; int seqstart,seqend; int maxsum,thissum; for(i=0;i {  thissum = 0;  for(j=i;j  {   thissum += a[j];   if(thissum>maxsum)   {    maxsum = thissum;    seqs

2010-04-10 15:19:00 270

原创 Builder--EnumWindows

//---------------------------------------------------------------------------#include #pragma hdrstop#include "Unit1.h"//---------------------------------------------------------------------------

2010-04-10 15:18:00 377

原创 图的邻接表

#include#include#define MAX 20struct node{ int data; struct graph *next;};struct Graph{ struct node array[MAX]; int vexnum,arcnum;};void Create_Graph(struct Graph *G){ int i,j; int Visited[MAX]; struc

2010-04-10 15:16:00 259

原创 文件读写

#include#includevoid OpenFile(char filename[],char fcopyname[]){ char ch; char a[100]; FILE *p,*q; p = fopen(filename,"w"); printf("input a string:/n"); scanf("%s",a); q = fopen(fcopyname,"wt"); if(!q

2010-04-10 15:15:00 245

原创 汉诺塔

#includevoid Hano(int n,int a,int b,int c){ if(n==1) {  printf("%c->%c/n",a,b); } else {  Hano(n-1,a,c,b);        printf("%c->%c/n",a,c);     Hano(n-1,b,a,c); }}void main(){ int n; char a,b,c; print

2010-04-10 15:14:00 299

原创 动态数组(指针)

#include#include#define max 50struct array{ int *base; int length;};void main(){ int count,*p,i,n; struct array *s; s = (struct array *)malloc(sizeof(struct array)*max); while(scanf("%d",&count)==1) {

2010-04-10 15:14:00 397

原创 信息数字化

#includevoid main(){ int x; for(x=1;x {  if(((x!=1)+(x==3)+(x==4)+(x!=4))==3)  {   printf("%c是小偷",x+64);   break;  } }}

2010-04-10 15:13:00 386

原创 八皇后问题

#include#include#define MAX 8 //8*8的棋盘int board[MAX];void show_result(){ int i; for(i=0;i  printf("(%d,%d)",i,board[i]); printf("/n");}//检查是否在同一直线上int check_cross(int n){ int i; for(i=0;i {  if(boar

2010-04-10 15:12:00 269

原创 动态规划01

#includevoid main(){ int i,j; int a[10][10][3]; int n; printf("input a number n:/n"); scanf("%d",&n); for(i=1;i {  for(j=1;j  {   printf("input a number:/n");   scanf("%d",&a[i][j][1]);   a[i][j][2] =

2010-04-10 15:07:00 244

原创 ProcessCreate

// 01CreateProcess.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include#includeint main(int argc, char* argv[]){ printf("Hello World!/n"); char szCommand[] = "cmd"

2010-04-10 15:06:00 335

原创 ProcessList

// 01ProcessList.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include#include#includeint main(int argc, char* argv[]){    PROCESSENTRY32 pe32; pe32.dwSize = sizeof

2010-04-10 15:04:00 295

原创 日历系统

  #include#include#includeint main(){ int year,month,day=1,i,j,d,data,e; char h; printf("/n/n/t                 *  显示日历  *                 /n");  printf("/n/t-----------------------/n"); printf("/t请

2010-04-10 15:02:00 474

空空如也

空空如也

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

TA关注的人

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