自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 3个水杯

三个水杯时间限制:1000 ms  |  内存限制:65535 KB难度:4描述给出三个水杯,大小不一,并且只有最大的水杯的水是装满的,其余两个为空杯子。三个水杯之间相互倒水,并且水杯没有标识,只能根据给出的水杯体积来计算。现在要求你写出一个程序,使其输出使初始状态到达目标状态的最少次数。输入第一行一个整数N(0接下来每组测试数据有两行,第一行给出三个整

2013-11-29 21:22:41 500

原创 蛇形填数

蛇形填数时间限制:3000 ms  |  内存限制:65535 KB难度:3描述在n*n方陈里填入1,2,...,n*n,要求填成蛇形。例如n=4时方陈为:10 11 12 19 16 13 28 15 14 37 6 5 4输入直接输入方陈的维数,即n的值。(n输出输出结果是蛇形方陈。样例输入3样例输出7 8 1

2013-11-28 10:49:53 482

原创 黑洞数

黑洞数:是指于四位数中,只要数字不完全相同,将数字由大到小的排列减去由小到大的排列。假设一开始选定的数字为,=f(),=f(),...,=f() 用同样的规则继续算下去,最后的结果一定是6174。 比如说一开始选定9891,则f(9891)=9981-1899=8082,f(8820)=8820-0288=8532,f(8532)=8532-2358=6174,f(7641)=76

2013-11-25 23:37:29 1008

原创 三个字符排序

ASCII码排序时间限制:3000 ms  |  内存限制:65535 KB难度:2描述输入三个字符(可以重复)后,按各字符的ASCII码从小到大的顺序输出这三个字符。输入第一行输入一个数N,表示有N组测试数据。后面的N行输入多组数据,每组输入数据都是占一行,有三个字符组成,之间无空格。输出对于每组输入数据,输出一行,字符中间用一个空格分开。样例

2013-11-23 16:02:13 2268

原创 sudolu killer

思路:        找到问号,判断哪个数字可以使用,即行列九宫格里 都没有出现过的数字就能用        每个问号都可能有多种取值,找到一个符合的数字后,进入下个问号,这就相当于全排列:每个数字有多种取值,判断用没用过后就可以进入下一层细节:1  因为这道题只要求输出一组数据所以找到第一组数据后,无需继续进行,return 就好,我用了count来计数,

2013-11-23 15:56:48 751

原创 火车进站

#include#includeint temp[50];int mark[50];int b[50];int n;int count;void dfs(int level){ int i, j, k = 0; if(count > 20) return; if(level == n + 1){ for(i = 1; i <= n; i++){ k = 0

2013-11-23 14:12:15 4924

原创 将一个数组排序(数组的左一半和右一半都是小到大或者大到小)

#include#includeint main(){ char array[10]; char b[10];//临时数组存放临时数据 int i = 0, j, k, z, count = 0; gets(array); j = k = strlen(array) / 2 ; z = strlen(array); while(count != z){//临时数组里的元素

2013-11-22 17:06:32 1023

原创 typedef char array[10]

#includetypedef char array[100][90];int main(){ array b; int i; for(i = 0; i < 4; i++) gets(b[i]); printf("%c\n",b[2][3]); return 0;}

2013-11-21 21:45:44 1427

原创 整数划分

题目1:将n分成不大于m的数相加有多少种情况思路:将大问题化成小问题。           分问题的条件就是 : 有没有m           第一种情况:n           第二种情况:n == m, 有[1 + (n由m-1的数组成)] 个情况 例:5 划分成不大于5的数的划分,有5:由5组成的                                 情况只有1种

2013-11-20 16:46:47 653

原创 运用全排列简单搜图型

运用全排列简单搜图型全局变量,题目中一直会用到的东西void 搜索(int x, int y){ if(x,y 到了目标){//当有目标的时候写 if(限定条件) operation..//count or print } else{ for(几个方向){ if(不越界 && 没走过){ 标记走过;

2013-11-16 10:29:47 486

原创 大数阶乘

大数阶乘时间限制:3000 ms  |  内存限制:65535 KB难度:3描述我们都知道如何计算一个数的阶乘,可是,如果这个数很大呢,我们该如何去计算它并输出它?输入输入一个整数m(0输出输出m的阶乘,并在输出结束之后输入一个换行符样例输入50样例输出304140932017133780436126081660647688443

2013-11-15 17:19:24 439

原创 验证数独

#include#includeint sudoku[9][9];int mark[20];void dfs(){ int flag = 0; int i, j; int a, b; for(i = 0; i < 9; i ++){//row judge memset(mark, 0, sizeof(mark));//判断完一行进行初始化 for(j = 0; j < 9

2013-11-14 13:13:40 524

原创 我的前缀式计算

#includeusing namespace std;#include#include#include#includestack q;char str[10000];char num[10];int n;int main(){ char temp; float ch1, ch2; int i, j; float a; while(gets(str)){

2013-11-13 18:53:36 419

原创 最小步数

最少步数时间限制:3000 ms  |  内存限制:65535 KB难度:4描述 这有一个迷宫,有0~8行和0~8列: 1,1,1,1,1,1,1,1,1 1,0,0,1,0,0,1,0,1 1,0,0,1,1,0,0,0,1 1,0,1,0,1,1,0,1,1 1,0,0,0,0,1,0,0,1 1,1,0,1,0,1,0,0,1 1,1,

2013-11-12 21:31:17 410

原创 素数环

#includeint mark[100];int num[100];int n;int flag[100];void prime(){ int i, j; flag[0] = flag[1] = 1; for(i = 2; i <= 50; i ++){ if(flag[i] == 0){ for(j = i + i; j <= 100; j = j + i){

2013-11-11 22:01:50 411

原创 武士风度的牛(广搜)

#include#includeusing namespace std;char map[200][200];int row, col;typedef struct node{ int x, y; int step;}node;//information of nodeint dir[8][2] = {{-1,2}, {1,2},{2,1},{2,-1},{1,-2},

2013-11-10 21:56:47 1350

转载 STL 栈的使用

STL 中栈的使用方法(stack)基本操作:push(x) 将x加入栈中,即入栈操作pop() 出栈操作(删除栈顶),只是出栈,没有返回值top() 返回第一个元素(栈顶元素)size() 返回栈中的元素个数empty() 当栈为空时,返回 true使用方法:和队列差不多,其中头文件为:#include 定义方法为:stackint>s1;//

2013-11-10 18:41:50 810

转载 STL 队列的使用方法

STL 中队列的使用(queue)基本操作:push(x) 将x压入队列的末端pop() 弹出队列的第一个元素(队顶元素),注意此函数并不返回任何值front() 返回第一个元素(队顶元素)back() 返回最后被压入的元素(队尾元素)empty() 当队列为空时,返回truesize() 返回队列的长度 使用方法:头文件:#include  声

2013-11-10 18:40:30 810

原创 NYOJ 523 (深搜,不可用的方法)

#includeint dir[6][3] = {{0,0,1},{0,0,-1},{1,0,0},{-1,0,0},{0,1,0},{0,-1,0}};int map[55][55][55];int A, B, C, T;int minute;void count(int step, int x, int y, int z){ //printf("step:%d\n",step)

2013-11-09 21:41:47 438

原创 NYOJ143 康托的应用

h#include#include#define N 12// there are N numbers in arrayint num[14];int fac(int i){ int j, sum = 1; for(j = 1; j <= i; j++){ sum = sum * j; } return sum;}int main(){ int code,

2013-11-09 19:50:57 479

转载 删除 所有 .o.文件

rm *.o

2013-11-06 20:18:28 1988

原创 带分数

标题:带分数100 可以表示为带分数的形式:100 = 3 + 69258 / 714 还可以表示为:100 = 82 + 3546 / 197 注意特征:带分数中,数字1~9分别出现且只出现一次(不包含0)。类似这样的带分数,100 有11 种表示法。题目要求: 从标准输入读入一个正整数N (N程序输出该数字

2013-11-06 20:07:51 569

转载 进入U盘

cd /media/

2013-11-06 14:22:23 590

原创 康托展开

康托展开维基百科,自由的百科全书跳转至: 导航、 搜索康托展开是一个全排列到一个自然数的双射,常用于构建哈希表时的空间压缩。 康托展开的实质是计算当前排列在所有由小到大全排列中的顺序,因此是可逆的。以下称第x个全排列是都是指由小到大的顺序。公式X=a[n]*(n-1)!+a[n-1]*(n-2)!+...+a[i]*(i-1)!+...+a[

2013-11-05 20:20:19 596

原创 N皇后

思路:是全排列的一个变形,就是加了限定条件这个限定条件就是  对角线上只能有一个数,行列只能有一个数这种 限制  简化了输出,也即    像全排列  每一行所对应的列数  不能重复  并且列数与列数之间又存在限定条件比方说    右对角线:行数   1 2 3 4 5 6列数    1 2 3 4 5 6             2 3 4 5 6 1就会发现  这个方

2013-11-04 22:56:47 387

原创 素数环

思路:   全排列,不过是1 的全排列,   即,调用全排列的函数时,传1  全排列中,要将数字存入  数组中  数组里,将前后两个数相加 判断是不是素数,这里应该每一层都与数组里前一个数相加进行判断,不否和就回到上一层//这里 素数要先存入素数数组中,最后一层的时候将这个数+1 进行判断

2013-11-03 22:46:08 555

原创 三元组法 将矩阵转置 并输出转置后的三元组

#include#define ROW 3 #define COL 3#define MAXSIZE 30int number[MAXSIZE+1], position[MAXSIZE+1];//number数组表示  每一列有几个元素,position数组存放每一列第一个元素在矩阵中的位置typedef int ElemType;typedef struct{ int row,

2013-11-03 21:28:53 1967

原创 NYOJ 27 水池数目

#includeint n;int map[101][101];int row, col;int der[4][2]={{0, 1},{1, 0},{0 , -1},{-1, 0}};//用二维数组记录四个方向void count(int x, int y){ int i; int x1,y1 ; map[x][y] = 0;//可以走到即置零 //else //{

2013-11-03 21:23:58 624

原创 全排列

#include void full_array(int k , int n , int *a , int *b) //k : layers n:all numbers *a:way *b:puts numbers{ int i ; if(k == n){ for(i = 0 ; i < n ; i ++) {

2013-11-02 21:24:18 361

原创 NYOJ58最小步数(神搜)

#includeint min_step = 1000000;int c,d;int map[][9]={{1,1,1,1,1,1,1,1,1}, {1,0,0,1,0,0,1,0,1}, {1,0,0,1,1,0,0,0,1}, {1,0,1,0,1,1,0,1,1}, {1,0,0,0,0,1,0,0,1}, {1,1,0,1,0,1,0,0,1}, {1,1,0,1,0,1

2013-11-02 20:54:52 587

原创 NYOJ 22素数求和问题(只是找素数的一个变形 和 183 题很像)

#include#include#define MAX_SIZE 10001int flag[MAX_SIZE];int a[MAX_SIZE];int main(){ int sum; int N, M; int i, j; scanf("%d",&M); flag[0] = flag[1] = 1; for(i = 2; i <= sqrt(MAX_SIZE); i +

2013-11-01 23:56:36 725

原创 NYOJ187快速判断素数

#include#include#define MAX_SIZE 2000001//注意:define 没有 分号int flag[MAX_SIZE];int main(){ int a; int i, j; flag[0] = flag[1] = 1; for(i = 2; i <= sqrt(MAX_SIZE); i ++)//遍历了所有的数并进行标记 { if(fl

2013-11-01 23:38:29 727

原创 筛选法(判断一个数是不是素数,将所有数标记,再判断)

#include#includeint flag[1000];int main(){ int a; int i,j; while(1){ scanf("%d",&a); for(i = 2; i <= sqrt(a); i ++) { if(flag[i] == 0 ) { for( j = i + i; j <= a; ) { fl

2013-11-01 22:58:47 692

空空如也

空空如也

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

TA关注的人

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