Codeforces 1A&1B

1A.

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.

Sample test(s)

input

6 6 4

output

4
 
分析:感觉只是一道简单的数学题而已,但是也有一发WA。一看居然是手误,很不应该。同时采取int64来防止数据溢出。
代码如下:
#include <stdio.h>
int main()
{
    long long n,m,a,b,c;
    scanf("%I64d%I64d%I64d",&n,&m,&a);
    if(n%a)
        b=n/a+1;
    else
        b=n/a;
    if(m%a)
        c=m/a+1;
    else
        c=m/a;
    printf("%I64d",b*c);
    return 0;
}

1B.

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.

Sample test(s)

input

2R23C55BC23

output

BC23R23C55
 
分析:其实这道题是10进制与26进制间的转换,所以明白这一点后就需要处理细节就好,采取字符串读取数据。额,这道题写完后再看十分简单,但是我也快用了一个小时,而且第一交也是WA,才发现flag需要每一次都重新置为0.
#include <stdio.h>
#include <string.h>
char s[100000];
int main()
{
    int n,flag=0,i;                              //flag等于1为RC类型
    scanf("%d",&n);
    while(n--)
    {
        int len;
        scanf("%s",s);
        len=strlen(s);
        if(s[0]==‘R‘&&s[1]>=‘0‘&&s[1]<=‘9‘)    //可能是RC型
        {
            i=2;
            while(s[i])
            {
                if(s[i]!=‘C‘)
                    i++;
                else
                {
                    flag=1;                   //确定是RC类型
                    break;
                }
            }
        }
        if(flag)                              //RC类型转化
        {
            char c[100],r[100];
            int r_n=0,c_n=0;
            int num=0,j;
            int lenc;
            for(j=1;j<=i-1;j++)
                r[r_n++]=s[j];
            r[r_n]=‘\0‘;
            for(j=i+1;j<len;j++)
            {
                num=10*num+(s[j]-‘0‘);
            }
            while(num){
                if(num%26==0){
                    c[c_n]=‘Z‘;
                    num--;
                }
                else{
                    c[c_n]=num%26+‘A‘-1;
                }
                num/=26;
                c_n++;
            }                             //完成转化。
            c[c_n]=‘\0‘;
            lenc=strlen(c);
            for(j=lenc-1;j>=0;j--)
                printf("%c",c[j]);
            printf("%s\n",r);
            flag=0;
        }
        else                             //不是RC模式
        {
            char r[100];
            int num=0,r_n=0;
            i=0;
            while(s[i]>=‘A‘&&s[i]<=‘Z‘){
                num=num*26+s[i]-‘A‘+1;
                i++;
            }
            while(s[i]!=‘\0‘){
                r[r_n++]=s[i];
                i++;
            }
            r[r_n]=‘\0‘;
            printf("R%sC%d\n",r,num);
        }
    }
    return 0;
}
时间: 2024-10-13 12:44:52

Codeforces 1A&1B的相关文章

CodeForces 1A Theatre Square

A - Theatre Square Time Limit:2000MS     Memory Limit:65536KB     64bit IO Format:%I64d & %I64u Submit Status Practice CodeForces 1A Description Theatre Square in the capital city of Berland has a rectangular shape with the size n × m meters. On the

CodeForces Beta Round #1

Codeforces Beta Round #1 A. Theatre Square [题意]一个n*m的矩形广场,用a*a的方形石板铺设,问最少需要多少块石板能铺满广场. [思路]水题,从n方向来看能能够铺设ceil(n/a)块,从m方向来看能能够铺设ceil(m/a)块,总共有ceil(n/a)*ceil(m/a)块. 1 /* 2 ** CodeForces 1A Theatre Square 3 ** Created by Rayn @@ 2014/05/18 4 */ 5 #inclu

【python】实践中的总结——列表

访问列表可通过索引来引用,如:list[0]将引用列表的第一个值.list[0:1]返回第一和第二个元素. 可通过列表综合来创建列表,该功能是在python2.0版本中新增加的.如果想对列表中的每个项进行运算并把结果存储在一个新列表中,可者想创建一个仅包含特定满足某种条件的项,采用该方法是很适合的.如:[x*x for x in range(1,10)]会得到一个X的平方的新列表:我们还可添加if条件控制输出,如:[x*x for x in range(1,10) if x%2==0]:还可在列

[转载]我的WafBypass之道(SQL注入篇)

现在位置: 首页 > 文章 > Web安全 > 正文 我的WafBypass之道(SQL注入篇) 2016 /11/23 16:16 6,444 评论 3 条 [本文转自安全脉搏战略合作伙伴先知技术社区 原帖地址  安全脉搏编辑huan9740整理发布] 0x00 前言 去年到现在就一直有人希望我出一篇关于waf绕过的文章,我觉得这种老生常 谈的话题也没什么可写的. 很多人一遇到waf就发懵,不知如何是好,能搜到的各 种姿势也是然并卵. 但是积累姿势的过程也是迭代的,那么就有了此文,用来

Theatre Square 题解代码

Theatre Square CodeForces - 1A 水题水题... 最开始的程序是这个,可是AC不了我也不知道为什么......QAQ... #include <stdio.h>#include<stdlib.h>int main(){    int m,n,a,ans,tmp,k,h,tep,i,j;    scanf("%d %d %d",&m,&n,&a);    if(m%a==0)    {        if(n%a

Linux TUN/TAP

Description TUN/TAP provides packet reception and transmission for user space programs. It can be seen as a simple Point-to-Point or Ethernet device, which, instead of receiving packets from physical media, receives them from user space program and i

三白话经典算法系列 Shell排序实现

山是包插入的精髓排序排序.这种方法,也被称为窄增量排序,因为DL.Shell至1959提出命名. 该方法的基本思想是:先将整个待排元素序列切割成若干个子序列(由相隔某个"增量"的元素组成的)分别进行直接插入排序,然后依次缩减增量再进行排序,待整个序列中的元素基本有序(增量足够小)时,再对全体元素进行一次直接插入排序. 由于直接插入排序在元素基本有序的情况下(接近最好情况),效率是非常高的,因此希尔排序在时间效率上比前两种方法有较大提高. 以n=10的一个数组49, 38, 65, 97

shell sort

/**希尔排序的实质就是分组插入排序,该方法又称缩小增量排序,因DL.Shell于1959年提出而得名. *该方法的基本思想是:先将整个待排元素序列分割成若干个子序列(由相隔某个"增量"的元素组成的)分别进行直接插入排序,然后依次缩减增量再进行排序,待整个序列中的元素基本有序(增量足够小)时,再对全体元素进行一次直接插入排序.因为直接插入排序在元素基本有序的情况下(接近最好情况),效率是很高的,因此希尔排序在时间效率上比前两种方法有较大提高. * *以n=10的一个数组49, 38,

文档linux1.2

内核(kernel),linux从根本上说应该是内核,也就是操作系统的大脑.而shell就是来保护内核的外壳.而内核处理命令的优先级就是由shell来决定.内核只是根据shell所规范的原则去执行命令. ***1.连接主机*** 连接--- vnc application---->internet---->tigervnc viewer---->输入IP---->connection##即可连接到主机 修改语言 application---->system tools----