上一页 1 ··· 10 11 12 13 14 15 16 17 18 ··· 27 下一页
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=2049简单的错排的使用,选对的那部分的排列组合乘以后面那部分的错排。下面是错排的解释错排公式 pala提出的问题: 十本不同的书放在书架上。现重新摆放,使每本书都不在原来放的位置。有几种摆法? 这个问题推广一下,就是错排问题: n个有序的元素应有n!种不同的排列。如若一个排列式的所有的元素都不在原来的位置上,则称这个排列为错排。 下面用递推的方法推导错排公式: 当n个编号元素放在n个编号位置,元素编号与位置编号各不对应的方法数用M(n)表示,那么M(n-1)就表示n-1个编号元素放在n-1个编号位置,... 阅读全文
posted @ 2013-05-23 17:20 执着追求的IT小小鸟 阅读(267) 评论(0) 推荐(0) 编辑
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=2072依次存入不重复的单词,输出结果#include<stdio.h>#include<string.h>char s[1000000];void input(char *q,int *i){ int j=0; while(s[*i]!=' '&&s[*i]!='\0') { q[j]=s[(*i)]; (*i)++; j++; } q[j]='\0'; (*i)--;}int main(){ int i,j,k,... 阅读全文
posted @ 2013-05-23 12:41 执着追求的IT小小鸟 阅读(301) 评论(0) 推荐(0) 编辑
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=2045这题……目前来说是找规律的题目,当然,实际上是简单的dp题目前能做到,就是写出前几组数据,然后找出规律递推思路:考虑长为n的串,以s[i]表示i位的字符。1.若前n-1位组成的串合法,则由于首尾不同,再添加一位时,只有1种方法;即s[n] = s[n-1]2.若前n-1位组成的串不合法,再添加一位后合法,即因为首尾相同而引起的不合法,那么前n-2位组成的串必定合法。此时第n位有2种添加方法。即s[n] = 2*s[n-2]3.边界条件:f(1)=3;f(2)=6;f(3)=6。#include<s 阅读全文
posted @ 2013-05-22 21:04 执着追求的IT小小鸟 阅读(167) 评论(0) 推荐(1) 编辑
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=2034求两个集合之差,其实就是排序后两个数组指针逐个跳过,相同时就跳过,不同时,如果前者小于后者,就保留前者,然后前者指针跳过,如果相反,就后者指针跳过就可以了#include<stdio.h>#include<stdlib.h>int cmp(const void *a,const void *b){ return *(int *)a-*(int *)b;} int main(){ int n,m,i,j,a[200],b[200],ans[200],k; while(scanf(& 阅读全文
posted @ 2013-05-22 20:09 执着追求的IT小小鸟 阅读(235) 评论(0) 推荐(0) 编辑
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=1036原本是水题不解释……可是nc的wa了n次,orz了,输出的地方少了个冒号---------题目说的就是接力赛的速度计算,如果是-:--:--就不算速度,如果是其他的就都化成秒加起来,如果再四舍五入得到答案#include<stdio.h>#include<string.h>int main(){ double d,sum,i; int team,n,flag=0,s; char time[10000]; scanf("%d%lf",&n,&d) 阅读全文
posted @ 2013-05-21 17:48 执着追求的IT小小鸟 阅读(249) 评论(0) 推荐(0) 编辑
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=2032用数组打表来做,首尾是1,其余的是上一行的这个数和前一个数的和#include<stdio.h>int main(){ int yh[50][50],i,j,n; yh[0][0]=yh[1][0]=yh[1][1]=1; for(i=2;i<=30;i++) for(j=0;j<i+1;j++) { if(j==0||j==i) yh[i][j]=1; else yh[i][j]=yh[i-1][j... 阅读全文
posted @ 2013-05-20 00:10 执着追求的IT小小鸟 阅读(152) 评论(0) 推荐(0) 编辑
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=2023题意不难理解,就是三个量之间要理清楚,自己容易乱掉,还有,数组开大一点,第一次按题目说的开,没通过#include<stdio.h>int main(){ double gra[100][1000],st[10000],gr[10000]; int i,n,m,j,sum; while(scanf("%d%d",&n,&m)!=EOF) { for(i=0;i<55;i++) st[i]=gr[i]=0; sum=0; ... 阅读全文
posted @ 2013-05-19 23:48 执着追求的IT小小鸟 阅读(296) 评论(0) 推荐(0) 编辑
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=1029简单哈希一次ac#include<stdio.h>int a[1000000];int main(){ int n,i,x,max; a[0]=0; while(scanf("%d",&n)!=EOF) { max=0; for(i=0;i<n;i++) { scanf("%d",&x); if(max<x) max=x; a[x]++; }... 阅读全文
posted @ 2013-05-19 18:00 执着追求的IT小小鸟 阅读(144) 评论(0) 推荐(0) 编辑
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=1047这题,,,,只是简单的大数相加,只要模拟小学时候算术就可以了,首先,个位对齐,接着,逐个相加,最后进位,其实相对应的减法也是如此,这题还有一个坑,就是要注意首位0的情况。。。。。#include<stdio.h>#include<string.h>int sum[300];int main(){ int t,i,j,max; char s[300]; scanf("%d",&t); gets(s); while(t--) { for(i=0;i< 阅读全文
posted @ 2013-05-18 12:52 执着追求的IT小小鸟 阅读(187) 评论(0) 推荐(0) 编辑
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=2352从字串的最后找起,如果这一个所代表的数字比上一个大,就加上,小的话就减掉。#include<stdio.h>#include<string.h>int main(){ int len,i,t,sum[100],a; char s[200]; sum['I']=1; sum['V']=5; sum['X']=10; sum['L']=50; sum['C']=100; sum['D']= 阅读全文
posted @ 2013-05-18 10:21 执着追求的IT小小鸟 阅读(129) 评论(0) 推荐(0) 编辑
上一页 1 ··· 10 11 12 13 14 15 16 17 18 ··· 27 下一页