2013 ACM
煦--晨
菜鸟起飞
展开
-
hdu(4493) Tutor
本来是很简单的题,但要考虑到四舍五入,就要把问题考虑全面了。小数点四舍五入,是要看小数点后第三位是否》5;另外输出的结果最后一位不能为零,所以要分别讨论小数点后两位是否都为零,还是哪一位为零。。 #include"stdio.h"#include"string.h"int main(){ int m,n,i,k; double sum,num; scanf(原创 2013-08-27 13:50:56 · 626 阅读 · 0 评论 -
uestc 1899 P酱的冒险旅途
本题的策略就是“在某个方向选择行走而不是停留,当且仅当行走能够缩短P酱与出口的距离”,这里的“距离”有一个专有的称呼,称为曼哈顿距离(Manhattan Distance),它的定义是两点间横坐标差的绝对值与纵坐标差的绝对值之和,即 |dx| + |dy|。先把四个方向满足题意所需要走的个数初始化为零;然后根据给出的mn的值,来确定所应该走的步数;#include"stdio.h"#i原创 2013-12-17 18:32:16 · 736 阅读 · 0 评论 -
uestc 1904 树上的鸟儿
本题是要求最多的鸟的数量,不一定在最后;所以先把满足题意的能配对的先确定下来;然后要开始遍历查找最大,在便利是在时间段n中进行的,把这个时间段能配对的鸟的数量,和雄鸟没配对的数量(因为每到飞走的时间)就是这个时间段总时间;#include"stdio.h"#include"string.h"int a[10006],b[10006];char str[10006];in原创 2013-12-16 20:45:15 · 478 阅读 · 0 评论 -
hdu(4996) D-City 并查集
/*本题并不是简简单单地考察并查集,他考察的是你是否理解并查集的原理,是怎样得到的;独立的个数;肯定越来越多,所以我们从最下面开始判断,要明白,刚开始 肯定要k--;但是对于都没有联系的点来说,此时独立的个数肯定为n个(最后输出的),第一个点可能减为了零,但全连同时为一,所以第一个点就不输出了。。*/ #include"stdio.h"#include"str原创 2013-08-27 15:20:00 · 779 阅读 · 0 评论 -
hdu(4720) Naive and Silly Muggles
题意:前三个点坐标,要找到一个最小的圆能覆盖这三个点;若第四个点在这个圆外则输出Safe,否则输出 Danger;前三个点确定一个三角形,若这个三角形是直角三角形或钝角三角形,则圆心在最长边的中点,半径是其一半;如果为锐角三角形, 则利用公式; x0=((y2-y1)*(y3*y3-y1*y1+x3*x3-x1*x1)-(y3-y1)原创 2013-09-20 16:34:58 · 783 阅读 · 0 评论 -
hdu(4616) A Computer Graphics Problem
#include"stdio.h"#include"string.h"int main(){ int m,n,i,j,k,r=1; scanf("%d",&k); while(k--) { scanf("%d",&m); printf("Case #%d:\n",r++); n=(100-m)/10;原创 2013-09-20 16:52:24 · 490 阅读 · 0 评论 -
hdu(4715) Difference Between Primes
题意:一个数看是否能用两个素数之差来表示;把素数存在一个数组里;查遍所有素数; #include"stdio.h"#include"string.h"#include"math.h"#define N 1050000int map[N];int prime[N];int main(){ memset(prime,0,sizeof(prime)); i原创 2013-09-09 18:22:00 · 579 阅读 · 0 评论 -
hdu(4707) Pet
由于没有出现环形,所以可以简单处理;#include"stdio.h"#include"string.h"int main(){ int i,m,n,k,h,p; int a[200000]; scanf("%d",&k); while(k--) { scanf("%d%d",&n,&m); me原创 2013-09-09 17:43:17 · 613 阅读 · 0 评论 -
hdu(4710) Balls Rearrangement
方法不太好想,参考别人的;不难发现a和b的最小公倍数是个周期。举个例子可以看看:a=3,b=5i=0 i%a i%b abs(i%a-i%b) i=0i%a i%b abs(i%a-i%b) 0 0 0 0 1 1 1 0 2 2 2 0 3 0 3 3原创 2013-09-09 17:37:37 · 596 阅读 · 0 评论 -
hdu(4597)记忆话搜索
#include"stdio.h"#include"string.h"int dp[30][30][30][30];int aa[30],bb[30],sum;int max(int a,int b){ return a>b?a:b;}int bfs(int a,int b,int c,int d,int sum){ int mx=0; if(a>b&&原创 2013-08-27 16:58:50 · 652 阅读 · 0 评论 -
uestc 1901 方方是个坏孩子
题目的要求重新表述如下:给定数列 a[1], a[2], ... a[n], 寻找一段连续的序列[L, R],使得 (a[L] + a[L + 1] + ... + a[R]) mod P = 0。求最长的序列,即R-L的最大值,无解输出1。首先引入前缀和(Prefix Sum)的概念:定义 sum[i] = (a[1] + a[2] +... + a[i]) 称为i位置的前缀和。 (1原创 2013-12-18 17:39:41 · 551 阅读 · 0 评论