2013.5.A

+ ?





1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

题1 高低位交换

【问题描述】

    给出一个小于2^32的正整数。这个数可以用一个32位的二进制数表示(不足32位用0补足)。我们称这个二进制数的前16位为“高位”,后16位为“低位”。将它的高低位交换,我们可以得到一个新的数。试问这个新的数是多少(用十进制表示)。

    例如,数1314520用二进制表示为0000 0000 0001 0100 0000 1110 1101 1000(添加了11个前导0补足为32位),其中前16位为高位,即0000 0000 0001 0100;后16位为低位,即0000 1110 1101 1000。将它的高低位进行交换,我们得到了一个新的二进制数0000 1110 1101 1000 0000 0000 0001 0100。它即是十进制的249036820。

【输入数据】

    读入一个小于2^32的正整数。

【输出数据】

    新的数。

【样例输入】

1314520

【样例输出】

249036820

T1:纯模拟

+ ?





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

#include<cstdio>

#include<cstring>

using
namespace std;

int f[33],n,a[33],i=1;

long
long ans=1,sum=0;

void
exchange(int
x){

    int
r;

    while(x>0){

       r=x%2;

       x/=2;

       f[i]=r;

       i++;

    }

}

void
change(){

    for(int
x=1;x<=32;x++){

        

        if(a[x]==1) sum+=ans;ans*=2;

    }

}

int
main(){

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

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

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

    memset(a,0,sizeof(a));

    scanf("%d",&n);

    exchange(n);

    for(int
j=16;j>0;j--){

        a[j]=f[j+16];

        a[j+16]=f[j];

    }

    change();

    printf("%lld",sum);

    return
0;

}

  T2:

+ ?





1

2

3

4

5

6

7

8

9

10

11

12

13

题2数列排序

【问题描述】

    给定一个数列{an},这个数列满足ai≠aj(i≠j),现在要求你把这个数列从小到大排序,每次允许你交换其中任意一对数,请问最少需要几次交换?

【输入格式】

    第一行,正整数n (n<=100,000)。

    以下若干行,一共n个数,用空格分隔开,表示数列{an},任意-231<ai<231。

【输出格式】

    只有一行,包含一个数,表示最少的交换次数。

【输入样例】

    8

    8 23 4 16 77 -5 53 100

【输出样例】

    5

  写这一题收获还是不少的,首先依旧表示自己打的题太少了,这样类型的题目没有碰到过40都看不下去了....TAT..
这是一题图论题,要找环
就比如
4
3 7 6 1
你sort一下,排好正确的顺序
1 3 6 7
发现,原序列的3应该和7交换,而7应该和1交换,1应该和3交换;
那么就恭喜你找到了最少的交换次数,2次,这也就是说找环的次数就为最少交换的次数;
ps:这里说一下自己年轻的地方:
1.交换过得数记得mark
2.刚开始超级年轻的这样记录每一个数正确的位置:
d[a[i]]=i;
之后崩溃掉了,喜闻乐见。
一直忘了数组的序号是不能为负的,逗了....这里用自定义即可;
TAT...程序放在机房了,改天附上吧

T3:

+ ?





1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

题3 路标设置

【问题描述】

    B市和T市之间有一条长长的高速公路,这条公路的某些地方设有路标,但是大家都感觉路标设得太少了,相邻两个路标之间往往隔着相当长的一段距离。为了便于研究这个问题,我们把公路上相邻路标的最大距离定义为该公路的“空旷指数”。现在政府决定在公路上增设一些路标,使得公路的“空旷指数”最小。他们请求你设计一个程序计算能达到的最小值是多少。

    请注意,公路的起点和终点保证已设有路标,公路的长度为整数,并且原有路标和新设路标都必须距起点整数个单位距离。

【输入格式】

    第1行包括三个数L、N、K,分别表示公路的长度,原有路标的数量,以及最多可增设的路标数量。

    第2行包括递增排列的N个整数,分别表示原有的N个路标的位置。路标的位置用距起点的距离表示,且一定位于区间[0,L]内。

【输出格式】

     输出1行,包含一个整数,表示增设路标后能达到的最小“空旷指数”值。

【输入样例】road.in

    101 2 1

    0 101

【输出样例】road.out

    51

【样例说明】

    公路原来只在起点和终点处有两个路标,现在允许新增一个路标,应该把新路标设在距起点50或51个单位距离处,这样能达到最小的空旷指数51。

【数据规模与约定】

    50%的数据中,2 ≤ N ≤100,0 ≤K ≤100

    100%的数据中,2 ≤N ≤100000, 0 ≤K ≤100000

    100%的数据中,0 < L ≤10000000

  二分答案即可...
=-=还是很不熟练啊...

+ ?





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

#include<cstdio>

#include<cstring>

using
namespace std;

int a[100001],l,n,k,d=0;

int judge(int
x){

    int
now=0;

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

        if(a[i]%x==0) now+=a[i]/x-1;

                else 
now+=a[i]/x;

    }

    if(now<=k) return
1; else
return 0;

}

int
main(){

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

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

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

    scanf("%d",&a[1]);

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

        scanf("%d",&a[i]);

    }

    for(int
i=1;i<n;i++) a[i]=a[i+1]-a[i];

    int
ll=1,r=l,t,mid;

    while(ll!=r){

        mid=(r+ll)>>1;

        if(judge(mid)) r=mid;

                 else 
ll=mid+1;

    }

    printf("%d",ll);

    return
0;

}

 T4树形DP,想之后单独附上

2013.5.A,布布扣,bubuko.com

时间: 2024-12-15 06:52:35

2013.5.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