杭电oj2047-2049、2051-2053、2056、2058
2047 阿牛的EOF牛肉串
1 #include<stdio.h> 2 3 int main(){ 4 int n,i; 5 _int64 s[51]; 6 while(~scanf("%d",&n)){ 7 s[1]=3;s[2]=8; 8 for(i=3;i<=n;i++){ 9 s[i] = s[i-1]*2 + s[i-2]*2; 10 } 11 printf("%I64d\n",s[n]); 12 } 13 14 15 }
2048 神、上帝以及老天爷
1 #include<stdio.h> 2 3 int main(){ 4 int n,m,i; 5 _int64 s[21][2]; 6 while(~scanf("%d",&n)){ 7 while(n--){ 8 scanf("%d",&m); 9 s[1][0] = 0;s[2][0] = 1;s[1][1] = 1;s[2][1] = 2; 10 for(i=3;i<=m;i++){ 11 s[i][0] = (i-1)*(s[i-1][0] + s[i-2][0]); 12 s[i][1] = s[i-1][1] * i; 13 } 14 printf("%.2lf%%\n",s[m][0]*100.00/s[m][1]); 15 } 16 } 17 18 }
转一个错排公式
错排公式推导:
当n个编号元素放在n个编号位置,元素编号与位置编号各不对应的方法数用D(n)表示,那么D(n-1)就表示n-1个编号元素放在n-1个编号位置,各不对应的方法数,其它类推.
第一步,把第n个元素放在一个位置,比如位置k,一共有n-1种方法;
第二步,放编号为k的元素,这时有两种情况:⑴把它放到位置n,那么,对于剩下的n-1个元素,由于第k个元素放到了位置n,剩下n-2个元素就有D(n-2)种方法;⑵第k个元素不把它放到位置n,这时,对于这n-1个元素,有D(n-1)种方法;
综上得到
D(n) = (n-1) [D(n-2) + D(n-1)]
---------------------
作者:程序小白_龙
来源:CSDN
原文:https://blog.csdn.net/dragon_dai_2017/article/details/70880960
版权声明:本文为博主原创文章,转载请附上博文链接!
2049 不容易系列之(4)——考新郎
1 #include<stdio.h> 2 3 int main(){ 4 int c,n,m,i,j; 5 _int64 s[21],num1,num2; 6 s[1] = 0;s[2] = 1; 7 for(i=3;i<21;i++){ 8 s[i] = (i-1)*(s[i-1] + s[i-2]); 9 } 10 while(~scanf("%d",&c)){ 11 while(c--){ 12 scanf("%d %d",&n,&m); 13 j=n;num1=1;num2=1; 14 for(i=m;i>0;i--){ 15 num1 *= j; 16 num2 *= i; 17 j--; 18 } 19 printf("%I64d\n",num1/num2*s[m]); 20 } 21 } 22 23 }
2051 Bitset
1 #include<stdio.h> 2 3 int main(){ 4 int n,i,j,s[50]; 5 while(~scanf("%d",&n)){ 6 i=0; 7 while(n/2>=1){ 8 s[i] = n%2; 9 i++; 10 n /= 2; 11 } 12 s[i] = 1; 13 for(j=i;j>=0;j--){ 14 printf("%d",s[j]); 15 } 16 printf("\n"); 17 } 18 19 20 }
2052 Picture
1 #include<stdio.h> 2 3 int main(){ 4 int n,m,i,j; 5 char s[80][80]; 6 while(scanf("%d %d",&n,&m)!=EOF){ 7 for(i=0;i<=m+1;i++){ 8 for(j=0;j<=n+1;j++){ 9 if(i==0 || i==m+1){ 10 s[i][j] = '-'; 11 }else if(j==0 || j==n+1){ 12 s[i][j] = '|'; 13 }else{ 14 s[i][j] = ' '; 15 } 16 } 17 } 18 s[0][0] = '+';s[0][n+1] = '+'; 19 s[m+1][0] = '+';s[m+1][n+1] = '+'; 20 for(i=0;i<=m+1;i++){ 21 for(j=0;j<=n+1;j++){ 22 printf("%c",s[i][j]); 23 } 24 printf("\n"); 25 } 26 printf("\n"); 27 } 28 }
2053 Switch Game
1 #include<stdio.h> 2 3 int main(){ 4 int n,i,count; 5 while(~scanf("%d",&n)){ 6 count = 0; 7 for(i=1;i<=n;i++){ 8 if(n%i==0){count++;} 9 } 10 if(count%2==0){printf("0\n");} 11 else{printf("1\n");} 12 } 13 }
2056 Rectangles
1 #include<stdio.h> 2 3 void sort(double s[]){ 4 int i,j; 5 double temp; 6 for(i=1;i<5;i++){ 7 for(j=4;j>i;j--){ 8 if(s[i]>s[j]){ 9 temp = s[i]; 10 s[i] = s[j]; 11 s[j] = temp; 12 } 13 } 14 } 15 16 } 17 18 int main(){ 19 int i,j; 20 double x[10],y[10],temp; 21 while(~scanf("%lf %lf %lf %lf %lf %lf %lf %lf",&x[1],&y[1],&x[2],&y[2],&x[3],&y[3],&x[4],&y[4])){ 22 if((x[3]>x[1]&&x[4]>x[1]&&x[3]>x[2]&&x[4]>x[2])||(x[3]<x[1]&&x[4]<x[1]&&x[3]<x[2]&&x[4]<x[2])||(y[3]>y[1]&&y[4]>y[1]&&y[3]>y[2]&&y[4]>y[2])||(y[3]<y[1]&&y[4]<y[1]&&y[3]<y[2]&&y[4]<y[2])){ 23 printf("0.00\n"); 24 }else{ 25 sort(x); 26 sort(y); 27 printf("%.2lf\n",(x[3]-x[2])*(y[3]-y[2])); 28 } 29 } 30 }
2058 The sum problem
1 #include<stdio.h> 2 #include<math.h> 3 4 int main(){ 5 int n,m,i,a; 6 while(~scanf("%d %d",&n,&m)){ 7 if(n==0&&m==0){break;} 8 for(i=sqrt(m*2);i>0;i--){ 9 a = (m-(i-1)*i/2)/i; 10 if(a*i+i*(i-1)/2==m){ 11 printf("[%d,%d]\n",a,a+i-1); 12 } 13 } 14 printf("\n"); 15 } 16 }
转载于:https://www.cnblogs.com/Ragd0ll/p/10498821.html
杭电oj2047-2049、2051-2053、2056、2058相关推荐
- HDU杭电OJ经典100题2000-2099_Java版详细题解(持续更新)
今年寒假打算用Java把杭电2000-2099全部AC(现在持续更新),如下是题目链接,之后是我的题解,全部做完后我会把所有AC的题解打包上传的 题号 题名 题号 题名 2000 ASCII码排序 2 ...
- hdoj杭电问题分类
杭电上的题虽然多,但是一直苦于找不到问题分类,网页都是英文的,所以平时做题也没怎么看,今天仔细一看,问题分类竟然就在主页....做了那么久的题居然没发现,表示已经狗带..不要笑,不知道有没有像我一样傻 ...
- 杭电ACM(HDUOJ)试题分类
杭电ACM试题分类 第一篇 1001 这个就不用说了吧 1002 简单的大数 1003 DP经典问题,最 ...
- 杭电acm第2304题答案c语言,【转】杭电ACM试题分类
注:网上搜的 第一篇 1001 这个就不用说了吧 1002 简单的大数 1003 DP经典问题,最大连续子段和 1004 简单题 1005 找规律(循环点) 1006 感觉有点BT的题,我到现在还没过 ...
- 杭电ACM题目类型整理
版权声明:(╯3╰) 转载请注明: http://blog.csdn.net/bat67 杭电acm题目分类版本1 1002 简单的大数 1003 DP经典问题,最大连续子段和 1004 简单题 10 ...
- 杭电acm2151题java的解法,杭电ACM题型分类
杭电ACM题型分类 基础题:1000.1001.1004.1005.1008.1012.1013.1014.1017.1019.1021.1028.1029.1032.1037.1040.1048.1 ...
- 【HDU100】杭电入门一百道 C++ 全 题 解
" Ctrl AC!一起 AC!" 题目集合链接:HDU2000-2099http://acm.hdu.edu.cn/listproblem.php?vol=11 前言 1. 好像 ...
- 【杭电ACM】1097 A hard puzzle
[杭电ACM]1097 A hard puzzle http://acm.hdu.edu.cn/showproblem.php?pid=1097 先用int手写了算法结果竟然wrong answer ...
- 【ACM】杭电OJ 1106 函数atoi
函数atoi是把字符串转化成整数的函数,头文件为 #include "stdlib.h" e.g. 运行环境:Dev-C++ 5.11 杭电1106 调用了sort函数,运行的时间 ...
最新文章
- MATLAB 1\n\n
- 《Asp.Net 2.0 揭秘》读书笔记(一)
- 找回消失的ubuntu启动选项
- Workflow WF Reference Links for 2009-02-13
- ASP.NET自定义错误页面
- linux二进制数据16进制数据转换,[轉]16进制字符文本/二进制文件迷你互转器
- 【网络安全】考试试卷十一
- linux内核编译串口驱动,ARM Linux下安装CH341串口驱动
- 王道数据结构代码笔记
- 数学分析_幂级数收敛分析
- 华为云备份显示服务器异常(1008),云盘服务器异常
- 基于JAVA的校园二手交易平台(附:源码 论文 数据库文件)
- 电线对接和端接为什么要使用连接器?
- 使用C++实现FC红白机模拟器 Cartridge 与 Mapper(实现篇)
- SEAndroid安全机制框架分析
- 集线器、交换机以及路由器异同 + 冲突域和广播域详解
- 新媒体短视频营销玩法
- jQuery滑动效果
- 视频教程-实用数据分析:数据分析师从小白到精通-大数据
- Kali虚拟机Virtual Machines解压即可使用
热门文章
- Paxos算法(Basic Paxos 与 Multi-Paxos思想)
- leetcode 455. 分发饼干 思考分析
- 合约 cd 模式_CD的完整形式是什么?
- Python中的append()和extend()
- Java LinkedList对象的get(int index)方法与示例
- python字符串转浮点数_如何在Python中检查字符串是否为数字(浮点数)?
- Python匿名函数---排序
- linux 如何打包分区文件,Linux基础------文件打包解包---tar命令,文件压缩解压---命令gzip,vim编辑器创建和编辑正文件,磁盘分区/格式化,软/硬链接...
- ThinkPHP5.1中使用Redis来缓存
- 详解list容器(应用+模拟实现)