AtCoder Beginner Contest 057
分析:24进制转换
#include<iostream>
using namespace std;
int main()
{
int a,b;
while(cin>>a>>b){
cout<<(a+b)%<<endl;
}
return ;
}
分析:求曼哈顿距离最近的点
#include "iostream"
#include "cstdio"
#include "cstring"
#include "string"
#include "cmath"
using namespace std;
const int maxn=+;
const long long INF=;
int n,m;
int vis[maxn];
typedef struct
{
long long x,y;
}point;
typedef struct{
long long x,y;
int num;
}fun;
point p[maxn];
fun s[maxn];
int main()
{
while(cin>>n>>m)
{
memset(vis,,sizeof(vis));
for(int i=;i<=n;i++)
scanf("%lld%lld",&p[i].x,&p[i].y);
for(int i=;i<=m;i++){
scanf("%lld%lld",&s[i].x,&s[i].y);
s[i].num=i;
}
for(int i=;i<=n;i++){
long long minx=INF;
int k=;
for(int j=;j<=m;j++){
long long t=abs(p[i].x-s[j].x)+abs(p[i].y-s[j].y);
if(t<minx){
minx=t;
k=j;
}
}
printf("%d\n",k);
}
}
return ;
}
分析:求所有两个相乘为N的数的最大位数的最小值
#include "iostream"
#include "cstdio"
#include "cmath"
using namespace std;
const int INF=;
long long n;
int solve(long long num){
int cnt=;
while(num){
cnt++;
num/=;
}
return cnt;
}
int main()
{
while(cin>>n){
long long minx=INF;
//cout<<solve(10000)<<endl;
for(long long i=;i*i<=n;i++){
if(n%i==){
long long t=max(solve(i),solve(n/i));
minx=min(minx,t);
}
}
cout<<minx<<endl;
}
}
分析:首先我们按照从大到小进行排序,然后选取前a个,这样得出来的平均值一定是最大的。然后接着我们统计总共有多少个跟a相同的数,并统计在第a个数之前有多少个跟a相同的数,如果第1个数个数跟第a个相同,则为c[x][y],否则我们统计从a到b的组合数相加.注意求组合数的方法,很经典。
#include "iostream"
#include "cstdio"
#include "cstring"
#include "string"
#include "cmath"
#include "algorithm"
#include "map"
#include "set"
#include "vector"
#define eps 1e-6
using namespace std;
const int maxn=;
double s[maxn];
long long c[maxn][maxn];
int n,a,b;
bool cmp(double x,double y){
return x>y;
}
void init(){
c[][]=;
for(int i=;i<=n;i++){
c[i][]=,c[i][i]=;
for(int j=;j<i;j++)
c[i][j]=c[i-][j-]+c[i-][j];
}
}
int main()
{
while(cin>>n>>a>>b){
init();
for(int i=;i<n;i++)
cin>>s[i];
sort(s,s+n,cmp);
double sum=;
for(int i=;i<a;i++){
sum+=s[i];
}
double h=sum/(double)a;
int x=,y=;
for(int i=;i<n;i++)
if(s[i]==s[a-]){
x++;
if(i<a)
y++;
}
//cout<<x<<" "<<y<<endl;
printf("%.6f\n",h);
if(s[]!=s[a-]){
cout<<c[x][y]<<endl;
}else{
long long cnt=;
for(int i=a;i<=min(b,x);i++)
cnt+=c[x][i];
cout<<cnt<<endl;
}
//printf("%d\n",ans);
}
return ;
}
AtCoder Beginner Contest 057的更多相关文章
- AtCoder Beginner Contest 057 ABCD题
A - Remaining Time Time limit : 2sec / Memory limit : 256MB Score : 100 points Problem Statement Dol ...
- AtCoder Beginner Contest 100 2018/06/16
A - Happy Birthday! Time limit : 2sec / Memory limit : 1000MB Score: 100 points Problem Statement E8 ...
- AtCoder Beginner Contest 052
没看到Beginner,然后就做啊做,发现A,B太简单了...然后想想做完算了..没想到C卡了一下,然后还是做出来了.D的话瞎想了一下,然后感觉也没问题.假装all kill.2333 AtCoder ...
- AtCoder Beginner Contest 053 ABCD题
A - ABC/ARC Time limit : 2sec / Memory limit : 256MB Score : 100 points Problem Statement Smeke has ...
- AtCoder Beginner Contest 136
AtCoder Beginner Contest 136 题目链接 A - +-x 直接取\(max\)即可. Code #include <bits/stdc++.h> using na ...
- AtCoder Beginner Contest 137 F
AtCoder Beginner Contest 137 F 数论鬼题(虽然不算特别数论) 希望你在浏览这篇题解前已经知道了费马小定理 利用用费马小定理构造函数\(g(x)=(x-i)^{P-1}\) ...
- AtCoder Beginner Contest 076
A - Rating Goal Time limit : 2sec / Memory limit : 256MB Score : 100 points Problem Statement Takaha ...
- AtCoder Beginner Contest 079 D - Wall【Warshall Floyd algorithm】
AtCoder Beginner Contest 079 D - Wall Warshall Floyd 最短路....先枚举 k #include<iostream> #include& ...
- AtCoder Beginner Contest 064 D - Insertion
AtCoder Beginner Contest 064 D - Insertion Problem Statement You are given a string S of length N co ...
随机推荐
- Linux 系统的常用命令之 rm ,rm -rf , rm -f 以及rm 命令的其他参数命令
1.rm -rf * 删除当前目录下的所有文件,这个命令很危险,应避免使用. 所删除的文件,一般都不能恢复! 2.rm -f 其中的,f参数 (f --force ) 忽略不存在的文件,不显示任何信息 ...
- 使用EventNext实现基于事件驱动的业务处理
事件驱动模型相信对大家来说并不陌生,因为这是一套非常高效的逻辑处理模型,通过事件来驱动接下来需要完成的工作,而不像传统同步模型等待任务完成后再继续!虽然事件驱动有着这样的好处,但在传统设计上基于消息回 ...
- 枚举型变量 ErrorStatus HSEStartUpStatus及使用
ErrorStatus和C语言中的int .char一样,后面定义的HSEStartUpStatus是这个变量.举例,你的ErrorStatus 代表bool类型的0或者1. typedef enum ...
- 蓝桥java 入门训练 Fibonacci数列
import java.util.Scanner; public class Main{ public static void main(String[] args) { int maxn=10000 ...
- Java中String字符串toString()、String.valueOf()、String强转、+ ""的区别
Object#toString(): Object object = getObject(); System.out.println(object.toString()); 在这种使用方法中,因为ja ...
- jmeter.properties控制聚合报告的用户响应时间设置和smmary results
jmeter.properties的配置Summariser控制输出Summary Results,可以显式rt和tps等信息 Aggregate Report配置可以控制聚合报告的内容,控制90%用 ...
- ftp服务器调用出错
因工作需要,需从FTP服务器上下载文件,本地测试OK,服务器上在FTP服务器连接之后卡住,没有异常和提示信息,在打印FTP命令之后,显示:150 Opening data channel for fi ...
- weex 阶段总结
新年伊始,回顾过去的一年,收获很多,之前一直在研究weex,说心里话感觉心好累,官方文档不全,社区不活跃,遇到很多坑,官方发布的版本有时都有坑,搞得我都不敢更新版本了. 但是,研究了这么久,放弃太可惜 ...
- 【iOS】KVC 与 KVO
一.KVC与KVO *"KVC":key value Coding(键值编码) *目的:间接的改动或获取对象的属性,减少程序(类与类)之间的耦合度. *"KVO" ...
- c程序设计语言第一章2
练习1.13编写一个程序,打印输入中单词长度的直方图.水平方向的直方图比较容易绘制,垂直方向的直方图则要困难些 #include <stdio.h> #include <stdlib ...