
ACM
文章平均质量分 56
Chuck_0430
命是弱者的借口,运是强者的谦词
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
互换两个变量,不使用中间变量
第一种方法:a = a+b;b = a-b;a = a-b;代码如下:#include "stdio.h" int main(void) { int a,b; printf("请输入两个变量a和b:/n"); scanf("%d %d",&a,&b); printf("a和b交换前:/n"); printf("原创 2012-11-17 20:47:50 · 492 阅读 · 0 评论 -
Hdu 1085 - Holding Bin-Laden Captive!
数学题 分类 把特殊情况列出来,所有的情况都能分出来。 AC代码:#include #include int main(){ int a,b,c,min; while(scanf("%d%d%d",&a,&b,&c)!=EOF) { if(a == 0 && b == 0 && c == 0) br原创 2012-11-02 12:43:02 · 576 阅读 · 0 评论 -
Hdu 2031 - 进制转换
数据结构 顺序栈 题目大意为:输入一个十进制的数N,将其转换成R进制的数。当R大于10的时候,参考16进制(比如10用A表示。。。)这题同时也是我们数据结构课的实验题,所以我是利用顺序栈来实现的。当然,也可以用数组逆序输出来实现。 AC代码如下: #include #include #include #define M 10005typedef int原创 2012-10-26 17:30:40 · 524 阅读 · 0 评论 -
POJ 1321 - 棋盘问题
DFS 本题的大意是:在一个 矩形 的棋盘里放棋子,要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列,要求根据棋盘的大小和放置棋子的位置,求出可行方案的个数。图中“ # ” 表示可放棋子的位置 “ . ” 表示空白的位置AC代码如下:#include#include#includeint n,k,ans;c原创 2012-10-25 19:25:41 · 370 阅读 · 0 评论 -
Hdu 1312 - Red and Black
DFS 题目大致意思是:在一个矩阵map[ h ][ w ]中,阵中每一个格子不是红色就是黑色,红色的才可以到达,黑色的无法通过。一个人在map[ i ][ j ]位置上,根据测试数据中道路的分配,求出这个人能走过多少格子(包括他自己的起点)。“ . ” 代表红色格子“ # ” 代表黑色格子“ @ ” 代表那个人的目前所在位置(只在图中出现一个) 本题的原创 2012-10-25 13:39:34 · 391 阅读 · 0 评论 -
POJ 3628 - Bookshelf 2
DFS 题意大致为:就是说FJ,有个栏杆,然后栏杆有个高度H,现在FJ有N个奶牛,每个奶牛有个高度hi,现在将奶牛堆起来(这里不知道怎么翻译了),使得堆起来的高度大于等于H,现在要求最小高度差。 之前我一直在想用dp来做,提交了也一直WA,错误代码如下:#include #include int main(){ int i,j; int n,b,h[原创 2012-10-24 20:17:42 · 382 阅读 · 0 评论 -
值得收藏的计算机网站 【一直更新】
和大家分享一些很不错的博客或者网站:1. http://superhacker.zyrj.org "因为神说的都是对的,所以我说的都是对的。"2.http://coolshell.cn 技术大神酷壳的博客。 3.http://blog.jobbole.com/ 伯乐在线,各种好文的转载!原创 2012-10-24 10:10:50 · 517 阅读 · 0 评论 -
Hdu 2027 - 统计元音
简单题~注意输出格式就好! 每个例子中间都有一个空行,但是最后一个例子结尾是没有空行的! AC代码:#include #include #include int main(){ char a[100005]; int t,i,j,len,n1,n2,n3,n4,n5; scanf("%d",&t); getchar(); f原创 2012-09-25 23:35:35 · 3642 阅读 · 0 评论 -
Hdu 2026 - 首字母变大写
水。 趁睡觉前10分钟,A一道水题不解释啊~注意不要用scanf输入和printf输出就可以了! AC代码:#include #include #include int main(){ char a[105]; int i,len; while(gets(a)!='\0') { len=strlen(a);原创 2012-09-25 23:08:14 · 3357 阅读 · 2 评论 -
Project Euler #1
http://projecteuler.net (国内也叫欧拉题目) 是一个国外的OJ网站(翻墙吧亲),里面全部都是数学类型题。题目是按照通过数量从大到小排序的!第一题是要求 1到1000之间能整除3或者5的数的和。这题很简单,直接上代码!答案是:233168#include int main(){ int i,sum=0; for(i=3;i<1000;i+原创 2012-09-23 13:48:12 · 459 阅读 · 0 评论 -
Hdu 2087 - 剪花布条
字符串匹配分开主串和模拟串。 用一个指针存模拟串的首地址就可以了,然后用C里面的 strstr 函数直接找出相匹配的字符串,匹配一次指针位置就往后移模拟串长度个单位。AC代码:#include #include int main(){ char s1[1000+5],s2[1000+5]; int c,len; char *p; wh原创 2012-09-23 10:35:39 · 482 阅读 · 0 评论 -
Hdu 1864 - 最大报销额
0-1背包问题 对于每一张发票,要么报销,要么不报销,张数就是dp值。状态转移代码:dp[j]=max(dp[j],dp[j-v[i]]+v[i])注意测试数据的边界值和特殊值! AC代码:#include #include int dp[3000010];int max(int a,int b){ return a>b?a:b;}int原创 2012-09-22 19:21:58 · 544 阅读 · 0 评论 -
Hdu 2955 - Robberies
0-1背包问题 状态转移方程:dp[j]=max(dp[j],dp[j-m[i]]*(1-q[i]))其中,dp[j] 表示抢了 j 块大洋之后的最大逃脱概率,条件是 dp[j-m[i]] 能够到达,即:之前抢劫过。初始化 dp[0]=1,其余的都是 0 或 -1 (什么都别不抢肯定不会被抓)!AC代码:#include #include doub原创 2012-09-22 19:06:46 · 357 阅读 · 0 评论 -
Hdu 2602 - Bone Collector
简单的0-1背包问题 动规方程是: f[j]=max(f[j],f[j-v[i]]+w[i]) AC代码如下:#include #include int n,v,w[1050],c[1050];int dp[10000];int max(int a,int b){ if(a>b) return a; else原创 2012-09-22 18:54:57 · 386 阅读 · 0 评论 -
Hdu 2544 最短路
Dij 、 Floyd 还是联系快速敲模板Dij代码:#include#include#includeusing namespace std;#define INF 0x3f3f3f3;int map[110][110],dis[110],visited[110];void Dijkstra(int n,int x){ int i,p,j,原创 2013-12-04 22:33:02 · 762 阅读 · 0 评论 -
Hdu 1087 - Super Jumping! Jumping! Jumping!
动规 题目大致内容是:有一盘跳棋,每一格都有对应的权值,从第一格开始往后,若后一个比当前格权值大,则累加权值,不然就继续往前走不累加权值;若往后的组合比当前的权值大,则累加最大的跳法的权值。也就是求他的最大上升求和序列(可以跳)。这题我用了两种方法AC,第一种是普通排序:#include #include long long num[1000];原创 2012-11-03 10:31:13 · 434 阅读 · 0 评论 -
Hdu 3293 - sort
排序题 字典序 题目的大致意思是:每一种武器都有它们的名字,产地,和伤害等级。在排序时,先排产地。按字典序从a ~ z 排序,如果一个产地里有多种武器,那也把武器排列在一起;然后,在每一个产地里,再根据它们的伤害等级排列,从高级到低级分别是 wonderful ~ good ~ so-so ;最后如果两个或者两个以上的武器有相同的产地和伤害等级,那就根据名字的原创 2012-11-04 21:35:26 · 472 阅读 · 0 评论 -
Hdu 1004 - Let the Balloon Rise
字符串匹配本题要求出ACM比赛现场的最热门的题目所对应的气球颜色,用字符串匹配的思想做。 AC代码:#include #include #include int main(){ char s[1001][16], k[16]; int n, i, j, sum, max; while(scanf("%d",&n),n) {原创 2012-11-06 11:17:35 · 364 阅读 · 0 评论 -
OJ_Judge端判题
转载地址:X_White这仅仅只是单个进程的代码,比较简单(离真正的开发还有着很大的差距),代码如下:#include #include #define ERROR -1#define OJ_WA -2#define OJ_RE -3#define OJ_AC -4#define OJ_CE -5#define BUFFER_SIZE 30int execute_cm转载 2012-11-17 19:05:50 · 792 阅读 · 0 评论 -
Hdu 1398 - Square Coins
完全背包 题目大意是有一个地方习惯用1到17的平方数作为货币,然后给你一个数额,求出有多少种组合来支付这个数额。比如说数额为10,那么一共有4种组合。分别是:10张1元的,1张4元的和6张1元的,2张4元的和2张1元的,1张9元的和1张1元的。 这题我是2A的,第一次做没有用完全背包,AC代码是#include #include #define N原创 2012-11-17 11:31:32 · 675 阅读 · 0 评论 -
Hdu 1062 - Text Reverse
字符串 这题题意是输入一个字符串,然后每一个单词或者单词+符号逆序输出。输出格式一定要小心!每一行的末尾不能有空格,不处理的话一定PE。 freopen用法:在这里与大家分享一个可以检查每一行结尾是否有空格,适用于字符串的文本编辑方法。 1.在头文件下敲入using namespace std;指进入C++的标示符的各种可用范围。 2.在main原创 2012-11-17 01:06:36 · 1041 阅读 · 0 评论 -
Hdu 2088 - ox of Bricks
逻辑上比较简单的一道数学题,但是输出格式相当费脑。题目大意是输入一个N,代表以下将输入几根积木柱子,在输入N个数字,代表每一根柱子所含的积木个数。要求每一次移动一块积木,使得N根柱子一样高,输出最小移动次数。如图: 这题的最大恶心之处就在于输出格式,“Output a blank line between each set.” , 即每个测试数据之间有一个空行,原创 2012-11-14 15:18:52 · 1259 阅读 · 0 评论 -
Hdu 1098 - Ignatius's puzzle
数学归纳法 题目给出一个方程式:f(x) = 5*x^13 + 13*x^5 + k*a*x,要求输入一个k(0要证明 f(n) ,即证明f(n+1)用二项式分解得出 5*(n+1)^13 + 13*(n+1)^5一定能被65整除用f(x+1)-f(x),会发现,只有18+ka不能确定是否能%65==0;又因(18+ka)%65=(18%65+(k%65)*(原创 2012-11-13 21:57:07 · 506 阅读 · 0 评论 -
Hdu 1071 - The area
初等高数,用定积分求面积 AC代码:#includeint main(){ int n,i; double x0,y0,x1,y1,x2,y2,k,b,a,c,h,s; scanf("%d",&n); for(i=1;i<=n;i++) { scanf("%lf%lf%lf%lf%lf%lf",&x0,&y0,&x1,&原创 2012-11-13 20:34:46 · 566 阅读 · 0 评论 -
卡特兰数 Catalan Number
关于扩展的卡特兰数:1.(n-m+1)/(n+1)*c(n+m,n)2.c[n+m][n]-c[n+m][m-1]1842年,Catalan提出了一种猜想:方程xz-yt =1没有大于1的正整数解,除非平凡情形32-23=1。这一问题至今尚未解决。(mathoe注:即除了8、9这两个连续正整数都是正整数的方幂外,没有其他。1962年我国数学家柯召以极其精湛的方法转载 2012-11-11 02:56:43 · 1366 阅读 · 0 评论 -
Hdu 1789 - Doing Homework again
贪心 有一个人要交作业,每一项作业都有对应的截止日期和扣分标准,若不能在截至日期内上交,则扣分。、利用贪心的思想,按作业的扣分高低从后往前排序,将扣分高的放在最后一天完成,若当天有事,则往前推,以此循环N次。 AC代码:#include #include #include using namespace std;typedef struct Node{原创 2012-11-10 14:15:49 · 387 阅读 · 0 评论 -
Hdu 1711 - Number Sequence
KMP,查找模式串在主串中的位置 AC代码:#include #include using namespace std;#define N 50005 int a[1000005],b[10005]; int p[10005]; int n,m; void getNext () { int i,j = 0; p原创 2012-11-10 14:07:18 · 443 阅读 · 0 评论 -
二叉树之小球下落问题
有一颗二叉树,最大深度为D,所有叶子的深度都相同。所有结点从上到下从左到右的编号分别依次是1,2,3,4,~,(2的D次方-1)。在节点1放下一个小球,它会往下落。每个内结点都有一个状态(开或关),初始时,每个内结点都处于关闭状态,当小球经过一个内结点时,开关状态会改变。当为开状态时,小球向左落下;当为关状态时,小球向下落下,直到走到叶子结点。输出树的深度D,和小球数量I输出第I个小球落到原创 2012-11-07 17:04:53 · 2666 阅读 · 0 评论 -
Hdu 3999 - The order of a Tree
二叉树排序先按排序树建树,然后将二叉树历遍,输出的最后一项将没有空格。 AC代码:#include #include #include using namespace std;int p[100100],i=0;struct node{ int data; node *lson,*rson;};node *T;int cnt=0;node原创 2012-11-07 16:19:20 · 594 阅读 · 0 评论 -
Hdu 1008 - Elevator
直接上AC代码:#include int main(){ int n,a[105],i,time; while(scanf("%d",&n)!=EOF) { time=0; if(!n) break; for(i=0;i<n;i++) { scanf("%d",&a[i]);原创 2012-11-06 20:06:17 · 415 阅读 · 0 评论 -
Hdu 4450 - Draw Something
2012ACM金华赛区的题,区域赛的水题T_T AC代码:#include #include int main(){ int n,i,a[105],s[105],sum; while(scanf("%d",&n)!=EOF) { sum=0; if(!n) break; for(i=0;i<n;i++)原创 2012-11-06 17:27:02 · 472 阅读 · 0 评论 -
Hdu 1005
找规律,周期 这题一开始想当然了,也没找规律直接用for写了一次,然后就ME了。再回过头来看,mod 7 就意味着最后答案只有0,1,2,3,4,5,6七个,所以7可以为一个转折点。打一次表看看数据,发现相数相邻只有7*7=49个,所以循环49次。所以在f [ 1 ]到f [ 49 ]之间,必然有两个数满足f [ m ] = 1,f [ m+1 ] = 1。所以49也是一个循环周期。原创 2012-11-06 13:40:49 · 379 阅读 · 0 评论 -
Hdu 3079 最短路径问题
Dij 快速敲成模板在更新边的距离时,特判一下是否更新花费。AC代码:#include#include#include#includeusing namespace std;#define INF 0x7fffffffint n,m;int map[1005][1005];int cost[1005][1005];void dijkstra(i原创 2013-12-04 22:30:30 · 873 阅读 · 0 评论 -
Hdu 1878
欧拉回路题意:若是欧拉回路,输出1,否则输出0分析:先深搜判断是不是属于一个联通分支;再判断奇度数的节点是否为0.AC代码:#include #include #include #include #include #include using namespace std;using std::vector;const int MAXN原创 2013-11-09 14:57:07 · 714 阅读 · 0 评论 -
Hdu 1078 FatMouse and Cheese
记忆化搜索题意:老鼠偷吃,有n*n的方阵,每个格子里面放着一定数目的粮食,老鼠每次只能水平或竖直最多走k步,每次必须走食物比当前多的格子,问最多吃多少食物。AC代码:#include #include #include #include using namespace std;const int MAXN = 110;int n, m原创 2013-11-23 20:08:46 · 835 阅读 · 0 评论 -
Hdu 1241 - Oil Deposits
深搜 搜索的时候把搜过的点置换成其他符号,避免重复搜索。由于有上下左右和对角线上相邻的点,所以要搜索八个方向。 AC代码如下:#include #include using namespace std;char map[105][105];int n, m, sum;void dfs(int i, int j){ if(map[i][j]!='@'原创 2012-11-24 00:27:44 · 1081 阅读 · 0 评论 -
Hdu 3371 - Connect the Cities
最小生成树 , Prim算法 注意:1.若第一次添加边之后min等于max,证明此图不连通,则输出-1 ;不然继续。2.将已经联通的城市的map[][]置为0 ,不在选择范围内 。 AC代码:#include #include #include #include int map[505][505], v[505], low[505], t[105];int原创 2013-04-26 23:54:16 · 594 阅读 · 0 评论 -
Hdu 1518 - Square
DFS . AC代码:#include#include#include#includeusing namespace std;int a[30];bool vis[30];int n,m,sum,len;bool dfs(int cur,int time ,int k){ if(time==3) return true; for(int i原创 2012-12-15 20:59:10 · 431 阅读 · 0 评论 -
Hdu 1016 - Prime Ring Problem
素数环,DFS历遍 题目大意为:输入一个数N(0测试数据:Input : N = 6 当N = 6 时的图解Output : Case 1:1 4 3 2 5 61 6 5 2 3 4AC代码:#include #include #include int A[25],cur,vis[25],n;// 打素数表,方便使用int原创 2012-10-30 11:18:03 · 580 阅读 · 0 评论 -
Hdu 1233 - 还是通畅工程
最小生成树 - prim算法 题意:n为村庄数,n*(n-1)/ 2 为村庄之间的路数,求出最小的路的总长度。 AC代码:#include #include #include const int max = 0x7ffffff;int map[105][105], v[5000], low[5000];int n,h;int MinTree(int n){原创 2013-05-04 12:55:34 · 754 阅读 · 0 评论