杭电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
这里用到了三个函数: #判断是否为数字:str.isdigit()#是否为字母:str.isalpha()#是否为空格:str.isspace() def tongji(str): alpha = 0 ...
- 笔记-select,poll,epoll
笔记-select,poll,epoll 1. I/O多路复用 I/O多路复用是指:通过一种机制或一个进程,可以监视多个文件描述符,一旦描述符就绪(写或读),能够通知程序进行相应的读写操作. ...
- salt demo 环境
demo 环境 安装 virtualBox和vagrant 安装工具包:virtualBox, vagrant 下载 https://github.com/UtahDave/salt-vagrant- ...
- [Python3.x]python3.5实现socket通讯(TCP)
TCP连接: tcp是面向连接的一个协议,意味着,客户端和服务器开发发送数据之前,需要先握手创建一个TCP连接.TCP连接的一端与客户端套接字相互联系,另一端与服务器套接字相联系.当创建该TCP连接的 ...
- Div处理滚动条问题
1,用div做容器现在已经十分普遍,下面是最基本的代码 <div style="width:50px;height:50px;background-color:blue"&g ...
- border与透明边框
1.背景:怎样增加复选框响应域的大小?就是,复选框点击区域增大一些 需求复选框的视觉区域大小(不含边框)是16px*16px 现在要把可点击区域增加到20px*20px 解决方案: box-shado ...
- loj2174 「FJOI2016」神秘数
先考虑一下一个集合怎么用 \(O(n)\) 时间求出来,然后用主席树推广到一个序列就可以了.大致思想就是考虑一个数的权值和它前面的数的和的关系. #include <algorithm> ...
- Oracle 11g数据库安装与卸载的方法图解(windows)
一.Oracle 11g安装 安装之前要先确定自己的电脑配置,以windows为例,如果是win7以下系统如xp等,可以选择Oracle 10g.因为10g的程序文件只有200多兆,而11g及达到了2 ...
- Yapi的坑
前一段时间,研究WEB Api相关的工具. YApi 可以内网部署,内心十分的欢喜啊.而且gitHub上推荐超过4000星,成绩很优异嘛.然而通过最终的尝试,我还是打算放弃他,投入Postman的怀抱 ...
- mysql用root账户建立用户和赋予权限
1.创建用户 create user guest_test@localhost identified by "root";-- 创建名为guest_test的用户 2.赋予权限 - ...