A. Theatre Square
time limit per test:1 second
memory limit per test:256 megabytes
input:standard input
output:standard output

Theatre Square in the capital city of Berland has a rectangular shape with the size n × m meters. On the occasion of the city's anniversary, a decision was taken to pave the Square with square granite flagstones. Each flagstone is of the size a × a.

What is the least number of flagstones needed to pave the Square? It's allowed to cover the surface larger than the Theatre Square, but the Square has to be covered. It's not allowed to break the flagstones. The sides of flagstones should be parallel to the sides of the Square.

Input

The input contains three positive integer numbers in the first line: n,  m and a (1 ≤  n, m, a ≤ 109).

Output

Write the needed number of flagstones.

Examples
Input
6 6 4
Output
4

题目链接:http://codeforces.com/problemset/problem/1/A

分析:
题意:给你一个矩形的常和宽,以及边长为a的正方形砖块,用砖块去铺这个矩形,允许重叠,不难,记住开__int64,否则会WA!
下面给出AC代码:
 #include <bits/stdc++.h>
using namespace std;
int main()
{
__int64 n,m,a;
while(scanf("%I64d%I64d%I64d",&n,&m,&a)!=EOF)
{
__int64 t=n/a;
__int64 s=m/a;
if(n%a!=)
t+=;
if(m%a!=)
s+=;
__int64 k=t*s;
printf("%I64d\n",k);
}
return ;
}
B. Spreadsheets
time limit per test:10 seconds
memory limit per test:64 megabytes
input:standard input
output:standard output

In the popular spreadsheets systems (for example, in Excel) the following numeration of columns is used. The first column has number A, the second — number B, etc. till column 26 that is marked by Z. Then there are two-letter numbers: column 27 has number AA, 28 — AB, column 52 is marked by AZ. After ZZ there follow three-letter numbers, etc.

The rows are marked by integer numbers starting with 1. The cell name is the concatenation of the column and the row numbers. For example, BC23 is the name for the cell that is in column 55, row 23.

Sometimes another numeration system is used: RXCY, where X and Y are integer numbers, showing the column and the row numbers respectfully. For instance, R23C55 is the cell from the previous example.

Your task is to write a program that reads the given sequence of cell coordinates and produce each item written according to the rules of another numeration system.

Input

The first line of the input contains integer number n (1 ≤ n ≤ 105), the number of coordinates in the test. Then there follow n lines, each of them contains coordinates. All the coordinates are correct, there are no cells with the column and/or the row numbers larger than 106 .

Output

Write n lines, each line should contain a cell coordinates in the other numeration system.

Examples
Input
2 
R23C55
BC23
Output
BC23
R23C55

题目链接:http://codeforces.com/problemset/problem/1/B

分析:          
题意:在Excel中,一个格子的位置有2种表示:

例如第23行第55列

①R23C55

②BC23

第一种表示方法很直观。

第二种表示方法中BC表示列。23表示行。

1-26列:A, B, C...Z

27-?列:AA, AB, AC...AZ, BA, BB, BC...ZZ

?-?:AAA...ZZZ...

跟进制的转换很类似!

输入任意一种表示,你的任务是输出另一种表示,模拟即可!
下面给出AC代码:

 #include <bits/stdc++.h>
using namespace std;
const int maxn=;
typedef long long ll;
char str[maxn];
int flag;
void change(int n)//26进制转换
{
if(n>)
change((n-)/);
printf("%c",(n-)%+'A');
}
void solve1()
{
int row=;
int col=;
for(int i=;i<flag;i++)
if(isdigit(str[i]))
row=row*+str[i]-'';//计算行
for(int i=flag+;str[i];i++)
col=col*+str[i]-'';//计算列
change(col);
printf("%d\n",row);
}
void solve2()
{
int row=;
int col=;
for(int i=;str[i];i++)
{
if(isupper(str[i]))
col=col*+str[i]-'A'+;//计算列
else row=row*+str[i]-'';//计算行
}
printf("R%dC%d\n",row,col);
}
int main()
{
int T;
while(scanf("%d",&T)!=EOF)
{
while(T--)
{
scanf("%s",str);
flag=;
if(str[]=='R'&&isdigit(str[]))
{
for(int i=;str[i];i++)
{
if(str[i]=='C')
{
flag=i;
break;
}
}
}
if(flag)
solve1();//判断‘R23C55’这一种情况
else
solve2();//判断‘BC23’这一种情况
}
}
return ;
}
C. Ancient Berland Circus
time limit per test:2 seconds
memory limit per test:64 megabytes
input:standard input
output:standard output

Nowadays all circuses in Berland have a round arena with diameter 13 meters, but in the past things were different.

In Ancient Berland arenas in circuses were shaped as a regular (equiangular) polygon, the size and the number of angles could vary from one circus to another. In each corner of the arena there was a special pillar, and the rope strung between the pillars marked the arena edges.

Recently the scientists from Berland have discovered the remains of the ancient circus arena. They found only three pillars, the others were destroyed by the time.

You are given the coordinates of these three pillars. Find out what is the smallest area that the arena could have.

Input

The input file consists of three lines, each of them contains a pair of numbers –– coordinates of the pillar. Any coordinate doesn't exceed 1000 by absolute value, and is given with at most six digits after decimal point.

Output

Output the smallest possible area of the ancient arena. This number should be accurate to at least 6 digits after the decimal point. It's guaranteed that the number of angles in the optimal polygon is not larger than 100.

Examples
Input
0.000000 0.000000 
1.000000 1.000000
0.000000 1.000000
Output
1.00000000

题目链接:http://codeforces.com/problemset/problem/1/C

分析:
题意:有一个正n边形

输入正n边形的其中3个点

问正n边形可能存在的最小面积,已知n<=100

该题关键技巧就是要画外接圆,然后玩玩圆周角,圆心角这些概念,当个平面几何问题,先尽量多推出一些结论。

具体解法如下:

首先,随便画个正多少边形,画个外接圆。根据正弦定理,可以直接知道外接圆半径。把这三个点连成一个三角形,三个角都会是正x边形的一个边对应这个外接圆的圆周角的整数倍。由于x很小,枚举+判断就可以了。

三角形外接圆半径公式:

每条边所对应的圆心角 = 2*PI/n

所以圆周角 = 圆心角/2 = PI/n

正n边形面积:

             

下面给出AC代码:

 #include <bits/stdc++.h>
using namespace std;
const double PI=3.1415926535;
const double ERR=0.01;
bool feq(double a,double b)
{
return fabs(a-b)<ERR;
}
double fgcd(double a,double b)
{
if (feq(a,))
return b;
if (feq(b,))
return a;
return fgcd(b,fmod(a,b));
}
double dist(double x0,double x1,double y0,double y1)
{
return sqrt((x1-x0)*(x1-x0)+(y1-y0)*(y1-y0));
}
int main()
{
double x[];
double y[];
for (int i=;i<;i++)
scanf("%lf%lf",&x[i],&y[i]);
double l[];
for (int i=;i<;i++) l[i]=dist(x[i],x[(i+)%],y[i],y[(i+)%]);
double p=(l[]+l[]+l[])/;
double s=sqrt(p*(p-l[])*(p-l[])*(p-l[]));
double r=l[]*l[]*l[]/(s*);
double ang[];
for (int i=;i<;i++) ang[i] = acos(-l[i]*l[i]/(*r*r));
ang[] =*PI-ang[]-ang[];
double unita =;
for (int i=;i<;i++)
unita=fgcd(unita,ang[i]);
printf("%.6lf\n",r*r*sin(unita)*PI/unita);
return ;
}

Codeforces Beta Round #1 A,B,C的更多相关文章

  1. Codeforces Beta Round #80 (Div. 2 Only)【ABCD】

    Codeforces Beta Round #80 (Div. 2 Only) A Blackjack1 题意 一共52张扑克,A代表1或者11,2-10表示自己的数字,其他都表示10 现在你已经有一 ...

  2. Codeforces Beta Round #62 题解【ABCD】

    Codeforces Beta Round #62 A Irrational problem 题意 f(x) = x mod p1 mod p2 mod p3 mod p4 问你[a,b]中有多少个数 ...

  3. Codeforces Beta Round #83 (Div. 1 Only)题解【ABCD】

    Codeforces Beta Round #83 (Div. 1 Only) A. Dorm Water Supply 题意 给你一个n点m边的图,保证每个点的入度和出度最多为1 如果这个点入度为0 ...

  4. Codeforces Beta Round #13 C. Sequence (DP)

    题目大意 给一个数列,长度不超过 5000,每次可以将其中的一个数加 1 或者减 1,问,最少需要多少次操作,才能使得这个数列单调不降 数列中每个数为 -109-109 中的一个数 做法分析 先这样考 ...

  5. Codeforces Beta Round #79 (Div. 2 Only)

    Codeforces Beta Round #79 (Div. 2 Only) http://codeforces.com/contest/102 A #include<bits/stdc++. ...

  6. Codeforces Beta Round #77 (Div. 2 Only)

    Codeforces Beta Round #77 (Div. 2 Only) http://codeforces.com/contest/96 A #include<bits/stdc++.h ...

  7. Codeforces Beta Round #76 (Div. 2 Only)

    Codeforces Beta Round #76 (Div. 2 Only) http://codeforces.com/contest/94 A #include<bits/stdc++.h ...

  8. Codeforces Beta Round #75 (Div. 2 Only)

    Codeforces Beta Round #75 (Div. 2 Only) http://codeforces.com/contest/92 A #include<iostream> ...

  9. Codeforces Beta Round #74 (Div. 2 Only)

    Codeforces Beta Round #74 (Div. 2 Only) http://codeforces.com/contest/90 A #include<iostream> ...

  10. Codeforces Beta Round #73 (Div. 2 Only)

    Codeforces Beta Round #73 (Div. 2 Only) http://codeforces.com/contest/88 A 模拟 #include<bits/stdc+ ...

随机推荐

  1. C# 委托高级应用----线程——创建无阻塞的异步调用(一)

    前言 本文大部分内容来自于mikeperetz的Asynchronous Method Invocation及本人的一些个人体会所得,希望对你有所帮助.原英文文献可以在codeproject中搜索到. ...

  2. Mac和Xcode常用的快捷键

    Mac电脑一般都不怎么用鼠标,因此除了触摸屏的各种双指.三指甚至四指的操作之外,快捷键的使用可以带来非常大的便利,本文则主要收集整理了自己在Mac常规和Xcode开发过程中常用的一些快捷键. 一.Ma ...

  3. 关于《ASP.NET MVC企业级实战》

    大家好,我的书<ASP.NET MVC企业级实战>已经出版啦,感谢大家过去的关注与支持!前言部分,出版的时候漏了部分内容,我这里将其贴出来. 本书提供源码和教学PPT课件!(源码在书中第3 ...

  4. React:入门计数器

    ---恢复内容开始--- 把React的官网入门例子全看一遍,理解了,但自己从头开始写有点困难,这次强迫自己从头开始写,并写好注释: import React, { Component } from ...

  5. geoserver安装部署步骤

    方式一:直接在geoserver官网下载zip源代码解压包,直接部署在tomcat里面运行geoserver: 方式二:下载安装包方式 以GeoServer2.8.5版本为准,安装之前必须要保证你机子 ...

  6. 支持各种特殊字符的 CSV 解析类 (.net 实现)(C#读写CSV文件)

    CSV是一种十分简洁的数据结构,在DOTNET平台实际使用中发现微软官方并没有提供默认的方法,而网上好多例子发现实现并不严谨甚至一些含有明显错误,所以后面自己实现了一个读写工具类,这里发出来希望方便后 ...

  7. bzoj 1835: [ZJOI2010]base 基站选址

    Description 有N个村庄坐落在一条直线上,第i(i>1)个村庄距离第1个村庄的距离为Di.需要在这些村庄中建立不超过K个通讯基站,在第i个村庄建立基站的费用为Ci.如果在距离第i个村庄 ...

  8. Java后端程序员都做些什么?

    这个问题来自于QQ网友,一句两句说不清楚,索性写个文章. 我刚开始做Web开发的时候,根本没有前端,后端之说. 原因很简单,那个时候服务器端的代码就是一切:接受浏览器的请求,实现业务逻辑,访问数据库, ...

  9. Kettle中忽略错误行继续执行

    在kettle执行的过程中,如果遇到错误,kettle会停止运行.在某些时候,并不希望kettle停止运行,所以就要处理下这些错误行. 例如这两天发现在一个转换中,总数出现一些不规则数据,这些数据一出 ...

  10. 阿里云Centos7 apache配置

    其实很简单,主要是有坑. 首先填坑,在阿里云安全策略上开放要访问的端口,然后配置firewall添加对应端口开放. firewall-cmd --zone=public --add-port=8011 ...