摘要: 设大,中,小3个杯子的容量分别为a,b,c。最初只有大杯子装满水,其他两个为空。最少要多少步让某一个杯子中有x升。0<c<b<a<1000输入:6 3 1410 7 35输出: 6 0 0 3 3 0 3 2 1 4 2 0minimum steps:3 10 0 0 3 7 0 3 4 3 6 4 0 6 1 3 9 1 0 9 0 1 2 7 1 2 5 3minimum steps:8 1 #include<iostream> 2 #include<cstring> 3 #include<iomanip> 4 #define m 阅读全文
posted @ 2013-02-07 18:49 再见~雨泉 阅读(235) 评论(0) 推荐(0) 编辑
摘要: 输入正整数n,把整数1,2,3...n组成一个环,使得相邻两个整数之和均为素数,输出从整数1开始逆时针的排列。同时一个环恰好只输出一次,n<=16。输入:6输出:1 4 3 2 5 61 6 5 2 4 3 1 #include<iostream> 2 using namespace std; 3 int A[16],vis[17]={0},n; 4 bool isp(int n) 5 { 6 if(n==1)return false; 7 int i; 8 for(i=2;i<n/2;i++)if(n%i==0)return false; 9 return t... 阅读全文
posted @ 2013-02-07 18:46 再见~雨泉 阅读(286) 评论(0) 推荐(0) 编辑
摘要: 本题中最多5个命题变项:p,q,r,s,t每个有0,1两种取值,所以总共32种情况,分别枚举即可。对于每种情况,计算表达式的值,如果有结果为0的则输出not难点在于如何计算表达式的值,我们采用递归的方法,把表达式分为一或两个子表达式,并把参数end(本表达式的结束位置)传给上一层,一遍上一层获取第二... 阅读全文
posted @ 2013-01-30 20:25 再见~雨泉 阅读(265) 评论(0) 推荐(0) 编辑
摘要: 题目链接http://poj.org/problem?id=2965采用二进制枚举,代码如下#include<iostream>#include<cstring>using namespace std;char ma[5][5];//用于输入int state;void shuru(){ int i; state=0; for(i=0;i<4;i++){ cin>>ma[i]; int j; for(j=0;j<4;j++) if(ma[i][j]=='+') state|=1<<(i*4+j); }}//反转一个,并 阅读全文
posted @ 2013-01-28 20:27 再见~雨泉 阅读(276) 评论(0) 推荐(0) 编辑
摘要: 水池数目时间限制:3000 ms | 内存限制:65535 KB难度:4描述南阳理工学院校园里有一些小河和一些湖泊,现在,我们把它们通一看成水池,假设有一张我们学校的某处的地图,这个地图上仅标识了此处是否是水池,现在,你的任务来了,请用计算机算出该地图中共有几个水池。输入第一行输入一个整数N,表示共... 阅读全文
posted @ 2013-01-28 20:01 再见~雨泉 阅读(327) 评论(0) 推荐(0) 编辑
摘要: 给十六个格子标上序号 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15便可以采用二进制记录不同的状态 0 1 0 0 0 1 1 0 0 0 1 1 0 1 1 1 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 此时便记录下了 14 10 9 5 4 2 1 0最后采用十进制保存此时的状态 1表示‘b’,0表示‘w’,再做相应的翻转,既0 -> 1, 1 -> 0 1 #include<iostream> 2 #include<cstring> 3 using namespace std; 4 char 阅读全文
posted @ 2013-01-28 12:13 再见~雨泉 阅读(567) 评论(0) 推荐(0) 编辑
摘要: 一、位运算符C语言提供了六种位运算符: & 按位与 | 按位或 ^ 按位异或 ~ 取反 << 左移 >> 右移1. 按位与运算 & 按位与运算符"&"是双目运算符。其功能是参与运算的两数各对应的二进位相与。只有对应的两个二进位均为1时,结果位才为1 ,否则为0。参与运算的数以补码方式出现。 例如:9&5可写算式如下: 00001001 (9的二进制补码)&00000101 (5的二进制补码) 00000001 (1的二进制补码)可见9&5=1。 按位与运算通常用来对某些位清0或保留某些位。例如把a 的高 阅读全文
posted @ 2013-01-22 23:29 再见~雨泉 阅读(168) 评论(0) 推荐(0) 编辑
摘要: 转自http://www.cnblogs.com/kuangbin/初期:一.基本算法: (1)枚举. (poj1753,poj2965) (2)贪心(poj1328,poj2109,poj2586) (3)递归和分治法. (4)递推. (5)构造法.(poj3295) (6)模拟法.(poj1068,poj2632,poj1573,poj2993,poj2996)二.图算法: (1)图的深度优先遍历和广度优先遍历. (2)最短路径算法(dijkstra,bellman-ford,floyd,heap+dijkstra) (poj1860,poj3259,poj1062,poj2253,poj 阅读全文
posted @ 2013-01-14 10:37 再见~雨泉 阅读(304) 评论(0) 推荐(0) 编辑
摘要: 转自http://blog.csdn.net/angle555945/article/details/7649288神一般的牛~~~~ 1 //***************************// 2 // SNAKE C++ // 3 // Written by zhsl // 4 // 2012.6.10 // 5 //***************************// 6 #include<iostream.h> 7 #include<stdio.h> 8 #includ... 阅读全文
posted @ 2013-01-10 14:42 再见~雨泉 阅读(399) 评论(1) 推荐(0) 编辑
摘要: 复制粘贴运行看看~~~#include<stdio.h>#include <windows.h>void SetColor(unsigned short ForeColor=5,unsigned short BackGroundColor=2) { HANDLE hCon = GetStdHandle(STD_OUTPUT_HANDLE); SetConsoleTextAttribute(hCon,ForeColor|BackGroundColor); } int main(){ int qq[50][50]={0}; int n;int key=1... 阅读全文
posted @ 2013-01-07 13:44 再见~雨泉 阅读(214) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://openoj.awaysoft.com/JudgeOnline/problem.php?id=1107不多说,求最短距离~BFS 1 #include 2 #include 3 char ma[110][110]; 4 int vis[110][110],dist[110][... 阅读全文
posted @ 2013-01-06 20:19 再见~雨泉 阅读(307) 评论(0) 推荐(0) 编辑
摘要: 复制粘贴后运行按1 or 0// game of life.cpp //function head #include <stdio.h> #include <stdlib.h> #include <windows.h> #include <time.h> #include <ctype.h> //define the size of the two-dimensional array #define SIZE 40 void rule(int array[SIZE][SIZE]); //function prototype void 阅读全文
posted @ 2013-01-06 18:16 再见~雨泉 阅读(204) 评论(0) 推荐(0) 编辑
摘要: 题目链接http://openoj.awaysoft.com/JudgeOnline/problem.php?id=1104 1 #include 2 #include 3 int vis[1100][100]; 4 char ma[1100][100]; 5 //在进行遍历时,对不同的区域做不同标... 阅读全文
posted @ 2013-01-06 17:57 再见~雨泉 阅读(235) 评论(0) 推荐(0) 编辑
摘要: 题目链接http://acm.hdu.edu.cn/showproblem.php?pid=2037 1 #include<stdio.h> 2 //快速排序 3 void sort(int *a,int *b,int i,int j) 4 { 5 int x=i,y=j,key=a[i],ke=b[i]; 6 if(x>=y)return ; 7 while(x!=y) 8 { 9 while(x<y&&a[y]>=key)y--;10 a[x]=a[y],b[x]=b[y];11 while(x<y&&a[x]... 阅读全文
posted @ 2013-01-06 16:46 再见~雨泉 阅读(935) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://openoj.awaysoft.com/JudgeOnline/problem.php?id=1100题目很长,说了一大段废话,最后其实就是求几个区间相交的总长。这里采用贪心的思想,先只考虑眼前的(所以要先排序),然后比较不同情况考虑:1:内部相交;2:两两部分相交;3:没有相交;只要依次比较就可以了。。。 1 #include<stdio.h> 2 int main() 3 { 4 int m; 5 while(~scanf("%d",&m)) 6 { 7 int i,j,n;double a[110]={0},b[110]={ 阅读全文
posted @ 2013-01-06 16:40 再见~雨泉 阅读(324) 评论(0) 推荐(0) 编辑