2013.4.A

=-=最近简直忙疯了.....两眼泪汪汪的...一个星期又磨磨蹭蹭的刷了一套

1.java_c

+ ?





1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

题1  Java vs C++

【问题描述】

    Java和C++两种语言的辩手都可以相互争论数小时去证明他们的编程语言是最好的。用Java的人将告诉人们,他们的程序更加清楚且不容易犯错,而用C++的人会嘲笑他们没有能举出有代表性的实例来证明他们的观点,或者告诉他们Java的程序运行速度慢而且源代码太长。

    另一个问题是,用Java和C++的人永远无法在标识符的命名上取得共识。在Java中,由多个单词组成的标识符的命名规则如下:第一个单词是以小写字母开头,接下来的每一个单词以大写字母开头,分隔符是不允许使用的。其他所有的字母都是小写的。下面举出一些例子:javaIdentifier,longAndMnemonicIdentifier,name,nEERC。

    而在C++中,人们只用小写字母来命名标识符。他们运用下划线“_”来分隔单词。下面举出一些例子:c_identifier,long_and_mnemonic_identifier,name(当只有1个单词时,用Java和C++的人是统一的),n_e_e_r_c。

    你需要写一个程序来相互翻译Java和C++的程序。当然了,翻译后的标识符必须符合它的命名规则,否则人们不会认同你的翻译。

    给你一个标识符,它可能会是Java或者C++标识符中的一种,而你需要将其翻译成另一种。如果这个标识符既不是Java标识符也不是C++标识符,你的程序需要报告错误。翻译必须符合规范,所以就需要改变字母大小写或者添加、删除下划线。

【输入格式】

    输入文件1行,包含一个标识符。标识符由大小写字母和下划线组成,长度不会超过100。

【输出格式】

    如果输入的是Java标识符,输出应该为C++标识符;反之亦然。如果输入既不是Java标识符,也不是C++标识符,则输出“Error!”。

【输入样例1】

    long_and_mnemonic_identifier

【输出样例1】

    longAndMnemonicIdentifier

【输入样例2】

    anotherExample

【输出样例2】

    another_example

【输入样例3】

    i

【输出样例3】

    i

【输入样例4】

    bad_Style

【输出样例4】

Error!

  java_c
这一题主要是考字符串的处理,写的时候还是要很细心的,首先是c++要手打insert.delete,表示很忧伤;一些小细节要考虑到,就比如首字母如果是大写或是_,输出error

代码

+ ?





1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

#include<cstdio>

#include<cstring>

using
namespace std;

char
s[200];

bool
f[3];

int i,j,l;

int main(){

    freopen("java_c.in","r",stdin);

    freopen("java_c.out","w",stdout);

    memset(f,false,sizeof(f));

    scanf("%s",s);

    l=strlen(s);

    for(i=0;i<l;i++){

        if(s[0]>=65 && s[0]<97){

            f[1]=true;f[2]=true;

            break;

        }

        if(s[0]==‘_‘){

            f[1]=true;f[2]=true;

            break;

        }

        if(s[i]>=65 && s[i]<97 && s[i]!=95){

            l++;

            f[2]=true;

            for(j=l;j>i;j--) s[j]=s[j-1];

            s[i+1]=s[i]+32;

            s[i]=‘_‘;

            i++;

           }

        if(s[i]==‘_‘){

            f[1]=true;

            if(s[i+1]>=97){

                for(j=i;j<l-1;j++) s[j]=s[j+1];

                s[i]=s[i]-32;

                l--;

             }

            else{

               f[2]=true;

               break;

        }}}

    if(f[1] && f[2]) printf("Error!");

       else
for(i=0;i<l;i++) printf("%c",s[i]);

       

    return
0;

}

  2.calculate

+ ?





1

2

3

4

5

6

7

8

9

10

11

12

题2  计算概率

【问题描述】

    小明有n个长度不一的小木棍,这些木棍的长度都是正整数。小明的父亲想和小明做一个游戏。他规定一个整数长度l,让小明闭着眼睛从n个木棍中随便拿出两个。如果两个木棍的长度总和小于等于l,则小明胜,否则小明的父亲胜。小明想知道他胜出的概率究竟有多大。

【输入说明】

    输入包含两行。第一行为两个整数n和l,其中n和l都不超过100000。第二行包含n个整数,分别为n个木棍的长度。

【输出说明】

    输出包含一个实数,小明胜出的概率,保留两位小数。

【输入样例】calculate.in

    4 5

    1 2 3 4

【输出样例】calculate.out

    0.67

  一开始打了个暴力,居然骗了个80,surprise!

之后看了题解说是要用dp.....但是看了某个大神的代码之后,发现可以用排列组合轻松搞定!!

+ ?





1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

#include<cstdio>

#include<cstring>

#include<algorithm>

using
namespace std;

long
long a[1000001],k,ans=0,n,l;

int main(){

    //freopen("calculate.in","r",stdin);freopen("calculate.out","w",stdout);

    scanf("%d%d",&n,&l);

    for(int
i=0;i<n;i++){

        scanf("%d",&k);

        a[k]++;

    }

    int
h=1,r=l-1,s=0;

    while(r>=h){

        s+=a[h];

        ans+=a[r]*s;

        r--;

        h++;

    }

    if(h==r) s+=a[h];

    ans+=s*(s-1)/2;

    n=n*(n-1)/2;

    printf("%.2f",(double)ans/n);

    return
0;

}

  3.recruitment

+ ?





1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

题3  袁绍的刁难

【问题描述】

  黄巾之乱后,郭嘉到了袁绍的统辖地区,袁绍想给郭嘉一个下马威,当时正值他招募将领的时候,于是乎,袁绍就让郭嘉去替他招募将领。

  这时候有很多很多的将领到袁绍处报到(别人家底厚,四世三公哪~~),每个将领的编号依次为1、2、3、……,第i个将领的武力值为3^(i-1)。

  袁绍需要我们的郭嘉招纳任意个将领,而郭嘉选中的将领有一个“总武力值”为各个将领的武力值之和。例如:郭嘉这一次招募了第一个将领和第三个将领,那么“总武力值”为1+9=10。

  袁绍想知道,他可以获得的第k小的“总武力值”是多少,请你帮助我们的郭嘉告诉袁绍这个第k小的“总武力值”。

  从文件中读入k,输出郭嘉能够获得的,第k小的“总武力值”。

【输入格式】

  输入文件的第一行为n(n≤100),表示测试数据的组数。

  以下n行,每行为一个k值。

【输出格式】

  输出包含n行,每行输出一个对应的结果。

【输入样例】

  1

  7

【输出样例】

  13

【样例说明】

  郭嘉能够拿到的总武力值从小到大为1、3、4、9、10、12、13……所以第7小的总武力值是13。

  对于50%的输入文件,有k≤5000。

对于100%的输入文件,有k≤2^31-1。

  表示打这一题打得无限忧伤,首先是一个周末都没有时候调它就很不开森了,没想到还因为最后输出的没有开lld,无限wa得我飙泪
咳咳.....一开始看到这一题的时候真是一点想法都没有,之前貌似没有打过这样的题目,之后40表示可以用进制转化,但之后发现用2进制并不需要倒着输出,想想2就可以知道了

+ ?





1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

#include<cstdio>

#include<cstring>

using
namespace std;

int i=0;

long
long f[100000];

void
exchange(int
x){

    int
r;

    while(x>0){

       r=x%2;

       x/=2;

       f[i]=r;

       i++;

    }

}

int
main(){

    freopen("recruitment.in","r",stdin);freopen("recruitment.out","w",stdout);

    long
long k,sum,ans;

    long
long n;

    scanf("%d",&n);

    for(int
j=0;j<n;j++){

        memset(f,0,sizeof(f));

        sum=0;ans=1;i=0;

        scanf("%d",&k);

        exchange(k);

        for(int
l=0;l<=i;l++){

            

            if(f[l]==1){

                sum+=ans;

            

            }ans*=3;

        }

        printf("%lld\n",sum);      

    }

    return
0;

}

  

 

2013.4.A,布布扣,bubuko.com

时间: 2024-10-20 20:51:38

2013.4.A的相关文章

ActiveReports 9实战教程(1): 手把手搭建好开发环境Visual Studio 2013 社区版

ActiveReports9刚刚公布3天.微软就公布了 Visual Studio Community 2013 开发环境. Visual Studio Community 2013 提供完整功能的 IDE ,可开发 Windows.Android 和 iOS 应用.支持:C++, Python, HTML5, JavaScript, 和 C#,VB, F# 语言的开发.提供设计器.编辑器.调试器和诊断工具. 最牛逼的在于你全然能够免费使用该工具: 能够正大光明的免费使用visual studi

Exchange 2013迁移SOP手册

Exchange 2013迁移SOP手册 阶段1:环境部署 OUTLOOK升级方式 统计版本低于SP3的OUTLOOK客户端信息 记录计算机在域中所在OU信息 域中创建临时升级用OU,如MAILUPGRADE 采用如下命令移动计算机到MAILUPGRADE OU dsmove "CN=Aidong Qi,OU=Users,OU=TESTP,OU=Hitech,DC=hitechad,DC=com" -newparent OU=MAILUPGRADE,DC=hitechad,DC=com

Install Exchange Server 2013 on Windows Server 2008

OS 要求 Exchange Server 2013可以部署在Windows Server 2012的平台也可以部署在Windows Server 2008 R2的平台.如果部署在Windows Server 2008 R2平台要求操作系统版本为Windows Server 2008 R2 SP1的版本? 安装服务器角色 : PowerShell中执行如下命令 , 打开Windows PowerShell 运行如下命令来加载服务器管理器模块 ? Import-Module ServerMana

bzoj-3170 3170: [Tjoi 2013]松鼠聚会(计算几何)

题目链接: 3170: [Tjoi 2013]松鼠聚会 Time Limit: 10 Sec  Memory Limit: 128 MB Description 有N个小松鼠,它们的家用一个点x,y表示,两个点的距离定义为:点(x,y)和它周围的8个点即上下左右四个点和对角的四个点,距离为1.现在N个松鼠要走到一个松鼠家去,求走过的最短距离. Input 第一行给出数字N,表示有多少只小松鼠.0<=N<=10^5下面N行,每行给出x,y表示其家的坐标.-10^9<=x,y<=10^

第三周作业:Visual Studio 2013

在装Visual Studio 2013的时候,提示我升级我的电脑,不然不给安装,于是我就各种升级,完事之后有了这个: 在我耐心的等待之下终于等到安装完成: 我就建立一个新的项目: 我就写了一个简单程序进行测试: 测试用例并且测试成功: 这就是本次作业的全部过程!!!!!!!!!!!!!!!

SharePoint 2013 日历视图兼容性问题

在IE11上访问SharePoint 2013 calendar视图,发现加入兼容性视图以后访问,正常,如下图: 不加入兼容性视图IE11访问,出现兼容性问题,如下图: 因为有些环境有问题,有些环境没有问题,对比了一下,发现打补丁kb3054792,打完补丁,重启即可: 补丁地址:http://www.microsoft.com/zh-cn/download/details.aspx?id=47055 特别的,在解决这个问题之前的疯狂谷歌过程中,发现也有类似情况,要么加入兼容性视图,要么开启浏览

【国家统计局】2013年6月份-2014年5月份70个大中城市住宅销售价格变动情况

2014年5月份70个大中城市住宅销售价格变动情况 http://www.stats.gov.cn/tjsj/zxfb/201406/t20140618_569655.html (一)与上月相比,70个大中城市中,价格下降的城市有35个,持平的城市有20个,上涨的城市有15个.环比价格变动中,最高涨幅为0.3%,最低为下降1.4%. (二)与去年同月相比,70个大中城市中,价格下降的城市有1个,上涨的城市有69个.5月份,同比价格变动中,最高涨幅为11.3%,最低为下降4.8%. -------

Visual Studio 2013 无法使用:在文件中查找(Ctrl+Shift+F)

最近遇到一个问题就是在win7(32位.64位都试过)上安装Visual Studio 2013(专业版.旗舰版都试过)之后,打开项目,使用:在文件中查找(Ctrl+Shift+F)功能时,会突然奔溃. 后来,突然想到在安装的时候,右键,以管理员身份安装. 于是,尝试了一下,搞定!

Office word 2013中直接调用MathType的方法

Office word 2013中直接调用MathType的方法 | 浏览:4403 | 更新:2014-02-20 14:45 | 标签: word 使用Office word 2013的用户肯定早已注意到在编辑文档时MathType无法直接调用,但是点击文档中的公式时能够跳出MathType的公式编辑窗口.其实,这一问题可以通过简单设置让 MathType 集成到Office Word 2013中. 工具/原料 Office word 2013软件.MathType软件 方法步骤 安装Mat

SharePoint 2013 SPDistributedCacheService 介绍与配置

SharePoint 2013 SPDistributedCacheService 是SharePoint  server 2013引入的一种缓存机制,它通常用于以下功能的缓存: Newsfeeds Authentication OneNote client access Security Trimming Page load performance (直接影响页面加载和反应速度) 有些Cache 是不通过SPDistributedCacheService 缓存的,例如: Blob Cache