杭电oj2047-2049、2051-2053、2056、2058
2047 阿牛的EOF牛肉串
#include<stdio.h>
int main(){
int n,i;
_int64 s[];
while(~scanf("%d",&n)){
s[]=;s[]=;
for(i=;i<=n;i++){
s[i] = s[i-]* + s[i-]*;
}
printf("%I64d\n",s[n]);
}
}
2048 神、上帝以及老天爷
#include<stdio.h>
int main(){
int n,m,i;
_int64 s[][];
while(~scanf("%d",&n)){
while(n--){
scanf("%d",&m);
s[][] = ;s[][] = ;s[][] = ;s[][] = ;
for(i=;i<=m;i++){
s[i][] = (i-)*(s[i-][] + s[i-][]);
s[i][] = s[i-][] * i;
}
printf("%.2lf%%\n",s[m][]*100.00/s[m][]);
}
}
}
转一个错排公式
错排公式推导:
当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)——考新郎
#include<stdio.h>
int main(){
int c,n,m,i,j;
_int64 s[],num1,num2;
s[] = ;s[] = ;
for(i=;i<;i++){
s[i] = (i-)*(s[i-] + s[i-]);
}
while(~scanf("%d",&c)){
while(c--){
scanf("%d %d",&n,&m);
j=n;num1=;num2=;
for(i=m;i>;i--){
num1 *= j;
num2 *= i;
j--;
}
printf("%I64d\n",num1/num2*s[m]);
}
}
}
2051 Bitset
#include<stdio.h>
int main(){
int n,i,j,s[];
while(~scanf("%d",&n)){
i=;
while(n/>=){
s[i] = n%;
i++;
n /= ;
}
s[i] = ;
for(j=i;j>=;j--){
printf("%d",s[j]);
}
printf("\n");
}
}
2052 Picture
#include<stdio.h>
int main(){
int n,m,i,j;
char s[][];
while(scanf("%d %d",&n,&m)!=EOF){
for(i=;i<=m+;i++){
for(j=;j<=n+;j++){
if(i== || i==m+){
s[i][j] = '-';
}else if(j== || j==n+){
s[i][j] = '|';
}else{
s[i][j] = ' ';
}
}
}
s[][] = '+';s[][n+] = '+';
s[m+][] = '+';s[m+][n+] = '+';
for(i=;i<=m+;i++){
for(j=;j<=n+;j++){
printf("%c",s[i][j]);
}
printf("\n");
}
printf("\n");
}
}
2053 Switch Game
#include<stdio.h>
int main(){
int n,i,count;
while(~scanf("%d",&n)){
count = ;
for(i=;i<=n;i++){
if(n%i==){count++;}
}
if(count%==){printf("0\n");}
else{printf("1\n");}
}
}
2056 Rectangles
#include<stdio.h>
void sort(double s[]){
int i,j;
double temp;
for(i=;i<;i++){
for(j=;j>i;j--){
if(s[i]>s[j]){
temp = s[i];
s[i] = s[j];
s[j] = temp;
}
}
}
}
int main(){
int i,j;
double x[],y[],temp;
while(~scanf("%lf %lf %lf %lf %lf %lf %lf %lf",&x[],&y[],&x[],&y[],&x[],&y[],&x[],&y[])){
if((x[]>x[]&&x[]>x[]&&x[]>x[]&&x[]>x[])||(x[]<x[]&&x[]<x[]&&x[]<x[]&&x[]<x[])||(y[]>y[]&&y[]>y[]&&y[]>y[]&&y[]>y[])||(y[]<y[]&&y[]<y[]&&y[]<y[]&&y[]<y[])){
printf("0.00\n");
}else{
sort(x);
sort(y);
printf("%.2lf\n",(x[]-x[])*(y[]-y[]));
}
}
}
2058 The sum problem
#include<stdio.h>
#include<math.h> int main(){
int n,m,i,a;
while(~scanf("%d %d",&n,&m)){
if(n==&&m==){break;}
for(i=sqrt(m*);i>;i--){
a = (m-(i-)*i/)/i;
if(a*i+i*(i-)/==m){
printf("[%d,%d]\n",a,a+i-);
}
}
printf("\n");
}
}
杭电oj2047-2049、2051-2053、2056、2058的更多相关文章
- 杭电(hdu)2053 Switch Game 水题
Switch Game Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Tota ...
- 杭电ACM题单
杭电acm题目分类版本1 1002 简单的大数 1003 DP经典问题,最大连续子段和 1004 简单题 1005 找规律(循环点) 1006 感觉有点BT的题,我到现在还没过 1007 经典问题,最 ...
- 杭电acm习题分类
专注于C语言编程 C Programming Practice Problems (Programming Challenges) 杭电ACM题目分类 基础题:1000.1001.1004.1005. ...
- acm入门 杭电1001题 有关溢出的考虑
最近在尝试做acm试题,刚刚是1001题就把我困住了,这是题目: Problem Description In this problem, your task is to calculate SUM( ...
- 杭电acm 1002 大数模板(一)
从杭电第一题开始A,发现做到1002就不会了,经过几天时间终于A出来了,顺便整理了一下关于大数的东西 其实这是刘汝佳老师在<算法竞赛 经典入门 第二版> 中所讲的模板,代码原封不动写上的, ...
- 杭电OJ——1198 Farm Irrigation (并查集)
畅通工程 Problem Description 某省调查城镇交通状况,得到现有城镇道路统计表,表中列出了每条道路直接连通的城镇.省政府"畅通工程"的目标是使全省任何两个城镇间都可 ...
- 杭电ACM分类
杭电ACM分类: 1001 整数求和 水题1002 C语言实验题——两个数比较 水题1003 1.2.3.4.5... 简单题1004 渊子赛马 排序+贪心的方法归并1005 Hero In Maze ...
- 高手看了,感觉惨不忍睹——关于“【ACM】杭电ACM题一直WA求高手看看代码”
按 被中科大软件学院二年级研究生 HCOONa 骂为“误人子弟”之后(见:<中科大的那位,敢更不要脸点么?> ),继续“误人子弟”. 问题: 题目:(感谢 王爱学志 网友对题目给出的翻译) ...
- C#利用POST实现杭电oj的AC自动机器人,AC率高达50%~~
暑假集训虽然很快乐,偶尔也会比较枯燥,,这个时候就需要自娱自乐... 然后看hdu的排行榜发现,除了一些是虚拟测评机的账号以外,有几个都是AC自动机器人 然后发现有一位作者是用网页填表然后按钮模拟,, ...
随机推荐
- Python元组,列表,字典,集合
1.元组 元组是有序的,只有index和count两种方法,一看到元组,就提醒是不可更改的 names = ('wll', 'ly', 'jxx', 'syq') (1)index方法 print(n ...
- C细节错误
2018.11.20 (1)有关优先级的细节 while (c = getchar() && c == '\n') { printf("c = %d\n", c); ...
- 分离链接法(Separate Chaining)
之前我们说过,对于需要动态维护的散列表 冲突是不可避免的,无论你的散列函数设计的有多么精妙.因此我们解决的重要问题就是:一旦发生冲突,我们该如何加以排解? 我们在这里讨论最常见的两种方法:分离链接法和 ...
- spring源码学习中的知识点
一.循环依赖 循环依赖就是循环引用,就是两个或多个bean之间互相持有对方. 1.构造器循环依赖 表示通过构造器注入造成的循环依赖,此依赖是无法解决的,只能抛出BeanCurrentlyInCreat ...
- 20145202马超 《Java程序设计》第八周学习总结
第十四章 NIO与NIO2 NIO使用频道(channel)来衔接数据节点,对数据区的标记提供了clear(),rewind(),flip(),compact()等高级操作. 想要取得channel的 ...
- miniui IE对省略号即text-overflow:ellipsis显示不一样的问题
做miniui项目中发现,IE对文本以英文或数字结尾的是英文的省略号,以汉字结尾的就是中文的省略号.只要将字体变为统一宋体即可解决.即 .mini-grid-cell-inner { ...
- sprintf()函数使用异常
调试STM32F103,比如如下代码:使用springf函数,这个函数是把最后两个参数先格式化成字符串 ,输出到ERROR_STRING,如果他们合并的长度大于30会出现深情况? ] sprintf( ...
- 《Cracking the Coding Interview》——第11章:排序和搜索——题目3
2014-03-21 20:55 题目:给定一个旋转过的升序排序好的数组,不知道旋转了几位.找出其中是否存在某一个值. 解法1:如果数组的元素都不重复,那么我的解法是先找出旋转的偏移量,然后进行带偏移 ...
- 用gulp清除、移动、压缩、合并、替换代码
之前前端代码部署时用的是grunt,后来又出了个gulp工具,最近试用了一下,很方便,感觉比grunt简单好用,下面把一些常见的任务列一下,备用. var gulp = require('gulp') ...
- PICT:基于正交法的软件测试用例生成工具
成对组合覆盖这一概念是Mandl于1985年在测试Aad编译程序时提出来的.Cohen等人应用成对组合覆盖测试技术对Unix中的“Sort”命令进行了测试.测试结果表明覆盖率高达90%以上.可见成对组 ...