
2015 Multi-University Training
文章平均质量分 58
丶阿明
Hello World!
展开
-
HDU 5301 Buildings
分析:给你一个n*m的矩形,和一个黑点(x,y),注意这个黑点不能当做空地来建窗户的,能用来建窗户的只有大矩形的4条边,这个黑点可以看做是一个1*1的实心石柱。让你最小化小矩形的面积使小矩形覆盖除黑点的n*m的大矩形,问这小矩形中面积最大的矩形。如果大矩形是边长为奇数的正方形,黑点又在正中间,那么答案就是n/2,可以画个图一下就看出来了,否则先将矩形转成n如果没有黑点的话,答案是(n+1)/2,但原创 2015-07-25 20:20:37 · 360 阅读 · 0 评论 -
HDU 5400 Arithmetic Sequence
分析:给你n个数和d1,d2,问有多少个区间满足“可以将该区间分为两个子区间,前一个区间是公差为d1的等差数列,后一个区间是公差为d2的等差区间,其中可以有一个子区间为空。如果给定的前len个数从第1个数到第len个数的这个区间满足题意,且第len+1个数也满足,就能新加len+1个满足题意的区间。比如:d1=2,d2=-2,前5个数是1 3 5 7 5,如果第6个数为3,那么他前5个数满足题意,原创 2015-08-19 14:22:00 · 501 阅读 · 0 评论 -
HDU 5288 OO’s Sequence
分析:题意是给你n个数字,全部区间[i,j](1# include # include # define mod 1000000007# define MAX(x,y) ((x)>(y))?(x):(y)# define MIN(x,y) ((x)<(y))?(x):(y) int a[100005],l[100005],r[100005],mark[100005]; int原创 2015-07-24 20:12:56 · 476 阅读 · 0 评论 -
HDU 5305 Friends
分析:给你n个人,和m个朋友关系,让你求满足每个人的线上和线下的朋友数相等的方案有多少种。如果有一个人的朋友数为奇数,不存在可行解,输出0,否则令每个人未确认的线上朋友on[i]和线下朋友off[i]的个数相等都为du[i]/2,然后从第一条边开始Dfs搜索,如果第num条的连的两个点都有未确认的线上朋友,则确认顶点u,v为线上朋友,所以未确认的on[u]--,on[v]--然后继续搜索下一条边,原创 2015-07-24 21:14:09 · 393 阅读 · 0 评论 -
HDU 5289 Assignment
分析:给你n个数字,求有多少个连续的区间,满足区间内的最大值和最小值的差小于k。假如已知前n-1个数满足第n-1个数的最大区间为[i,n-1],区间内的最大值的下标为max,最小值为min,如果第n个数的值介于区间[i,n-1]的最大值和最小值之前,那么区间[x,n](i# include int a[100005]; int Max(int i,int j) { i原创 2015-07-24 20:42:47 · 422 阅读 · 0 评论 -
HDU 5344 MZL's xor
分析:给你n个元素的数组a,让你求所有(ai+aj)(1# include __int64 a[500005]; int main() { int i,n,m,z,l,ans,t; scanf("%d",&t); while(t--) { scanf("%d%d%d%d",&n,&m,&z,&l);原创 2015-08-04 19:20:22 · 427 阅读 · 0 评论 -
HDU 5347 MZL's chemistry
分析:输入两个数字,让你比较这两个数字所代表的原子序数的第一电离能的大小,保证输入的两个数字的原子序数为同一主族或同一周期。第一电离能的规律为,同主族自上而下依次递减,同周期自左而右大致递增,特例为第3主族的比第2主族的小,第6主族的比第5主族的小,因为当核外原子轨道达到全满或半满的状态时,原子的能量较低,第一电离能较大,知道了这些就好办了,看代码:# include int main()原创 2015-08-04 19:31:53 · 887 阅读 · 0 评论 -
HDU 5349 MZL's simple problem
分析:给你n个操作,1 x :代表在数组中加入元素x,2 :代表删除最小元素,3 :代表输入最大值。删除时,就算我们的数不是最小的也可以,它也不知道,只要不是最大的就行,当数组内的数为0时,就重新初始化最大值,每加入一个数就和最大值判断。# include int main() { int i,n,num,t,x,max; while(scanf("%d",&原创 2015-08-04 19:41:46 · 410 阅读 · 0 评论 -
HDU 5387 Clock
分析:给你一个时间,让你输出3个时分,时秒,分秒的夹角。如果时间是hh(0# include # define abs(x) x>0?x:-(x); int gcd(int a,int b) { return b?gcd(b,a%b):a; } int main() { int i,k,t,hh,mm,ss,h,m,s,ans[4],g[4];原创 2015-08-13 19:36:12 · 475 阅读 · 0 评论 -
HDU 5375 Gray code
# include # include int main() { int i,n,t,k,ans,cas=1,a[200005],min; char s[200005],c; scanf("%d",&t); while(t--) { scanf("%s",s+1); n=strlen(s原创 2015-08-12 20:30:25 · 519 阅读 · 0 评论 -
HDU 5328 Problem Killer
分析:给你n个数字,判断最长的连续等差数列的数或等比数列的数的个数有多少个。等差:a[n]+a[n-2]=2*a[n-1],等比:a[n]*a[n-2]=a[n-1]*a[n-1],要注意的是判断时要分开判断,否则会WA,比如1 2 4 6,要是一起判断的话就错了。# include __int64 a[1000010]; int main() { int i,j,n原创 2015-07-31 15:03:04 · 429 阅读 · 0 评论 -
HDU 5373 The shortest problem
分析:题目问最后得到的数能不能被11整除,11的倍数的特点是奇数位和偶数位的差能被11整除,知道这就好求了。# include # include char s[10]; int main() { int i,n,t,len,cas=1,sum,tem,k,s1,s2,x1,x2; while(scanf("%d%d",&n,&t)) {原创 2015-08-12 20:15:35 · 342 阅读 · 0 评论 -
HDU 5319 Painter
分析:给你一个空白的图,你可以随意选几个连续的斜格子画线,\ 都是红色的,/ 都是蓝色的,每个格子只能被红线和蓝线涂一次,如何一个格子既有红色又有蓝色,就变成了绿色,给定你一个图,问至少画几条线。我们可以再拿一张"纸"g[60][60]来照着原图map[60][60]划线,每次都画能画的最长的长度。# include # include int main() { int原创 2015-07-28 19:58:11 · 541 阅读 · 0 评论 -
HDU 5317 RGCDQ
分析:F(x)就是x有几个不同的质因数,比如210=2*3*5*7,所以F(210)=4,让你求区间[l,r]内最大的GCD(F(i),F(j)),(l1000000,所以F(x)# include # include int count,prime[1000]; int f[1000010],a[1000010]; int F(int n) { int i,a原创 2015-07-28 19:50:20 · 436 阅读 · 0 评论 -
HDU 5326 Work
分析:一个公司有n个人,给你n-1对关系a b,代表a管理b,问你有多少人管理k个人。遍历每个人管理的人的数量count,如果count==k,ans++;遍历的思想就是BFS。# include # include # include typedef struct node { int num; struct node *next; }Node;原创 2015-07-28 20:05:06 · 653 阅读 · 0 评论 -
HDU 5363 Key Set
分析:给你一个元素为1~n的集合,让你求有多少个非空子集,子集内的元素之和为偶数。容易推出:ans=2^(n-1)-1,因为n过大,所有用快速幂来求。# include __int64 FastExp(__int64 a,__int64 b) { __int64 ans=1; while(b) { if(b&1)原创 2015-08-06 19:05:15 · 376 阅读 · 0 评论