题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:纯模拟
#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:
题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;
之后崩溃掉了,喜闻乐见。
一直忘了数组的序号是不能为负的,逗了....这里用自定义即可;
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int a[100010],d[100010],i;
bool f[100010];
long long ans=0,k=0;
struct node
{
int b,c;
bool operator <(const node & a)const{
return b<a.b;
}
} B[100001];
void find(int x){
int m=x;
if(B[i].b==a[x])
return;
else{
if(f[x]==true){
x=d[x];
f[m]=false;
ans++;
find(x);
}}
f[x]=false;
}
int main(){
freopen("seqsort.in","r",stdin);freopen("seqsort.out","w",stdout);
int n,t;
scanf("%d",&n);
memset(f,true,sizeof(f));
for(i=1;i<=n;i++){
scanf("%d",&a[i]);
B[i].b=a[i];
B[i].c=i;
}
sort(B+1,B+n+1);
for(i=1;i<=n;i++){
d[B[i].c]=i;
}
for(i=1;i<=n;i++){
ans=0;
if(f[B[i].c]==true) find(i);
k+=ans;
}
printf("%d",k);
fclose(stdin);fclose(stdout);
return 0;
}

  


T3:
题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
  二分答案即可...
=-=还是很不熟练啊...
#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的更多相关文章

  1. 2013 Asia Changsha Regional Contest---Josephina and RPG(DP)

    题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=4800 Problem Description A role-playing game (RPG and ...

  2. SharePoint 2013: A feature with ID has already been installed in this farm

    使用Visual Studio 2013创建一个可视web 部件,当右击项目选择"部署"时报错: "Error occurred in deployment step ' ...

  3. Visual Studio 2013 添加一般应用程序(.ashx)文件到SharePoint项目

    默认,在用vs2013开发SharePoint项目时,vs没有提供一般应用程序(.ashx)的项目模板,本文解决此问题. 以管理员身份启动vs2013,创建一个"SharePoint 201 ...

  4. SharePoint 2013 create workflow by SharePoint Designer 2013

    这篇文章主要基于上一篇http://www.cnblogs.com/qindy/p/6242714.html的基础上,create a sample workflow by SharePoint De ...

  5. Install and Configure SharePoint 2013 Workflow

    这篇文章主要briefly introduce the Install and configure SharePoint 2013 Workflow. Microsoft 推出了新的Workflow ...

  6. SharePoint 2013 configure and publish infopth

    This article will simply descript how to configure and publish a InfoPath step by step. Note: To con ...

  7. TFS 2013 培训视频

    最近给某企业培训了完整的 TFS 2013 系列课程,一共四天. 下面是该课程的内容安排: 项目管理     建立项目     成员的维护     Backlog 定义     任务拆分     迭代 ...

  8. Visual Studio 2013 Ultimate因为CodeLens功能导致Microsoft.Alm.Shared.Remoting.RemoteContainer.dll高CPU占用率的折中解决方案

    1.为什么Microsoft.Alm.Shared.Remoting.RemoteContainer.dll的CPU占用率以及内存使用率会那么高? 在Visual Studio 2013 Ultima ...

  9. 沙盒解决方案解决SharePoint 2013 以其他身份登陆的问题

    众所周知,SharePoint 2013没有像SharePoint 2010那样有一个叫"以其他身份登录"的菜单项. 当然解决方案也很多,比如你可以直接修改Welcome.ascx ...

  10. 实现一个基于 SharePoint 2013 的 Timecard 应用(中)

    门户视图 随着 Timecard 列表的增多,如何查找和管理这许多的 Timecard 也就成了问题.尤其对于团队经理而言,他除了自己填写的 Timecard,还要审核团队成员的 Timecard 任 ...

随机推荐

  1. JAVA多线程编程(详细例子)

    http://wenku.baidu.com/view/e4afbf36a32d7375a417808b.html

  2. HDU 1203 I NEED A OFFER!(dp)

    Problem Description Speakless很长时间,我想出国.现在,他已经完成了所有需要的检查.准备好所有要准备的材料,于是,便须要去申请学校了.要申请国外的不论什么大学.你都要交纳一 ...

  3. crawler_工具类_RegexUtils_正则帮助类

    package com.cph.crawler.core.utils; import java.util.ArrayList; import java.util.List; import java.u ...

  4. oracle_表分区

    一. 分区表理论知识 Oracle提供了分区技术以支持VLDB(Very Large DataBase).分区表通过对分区列的判断,把分区列不同的记录,放到不同的分区中.分区完全对应用透明. Orac ...

  5. linux下一个Oracle11g RAC建立(八)

    linux下一个Oracle11g RAC建立(八) 七.安装oracle软件   直接在图形界面里安装oracle.在node1操作 在虚拟机界面中,直接切换到oracle用户下: [grid@no ...

  6. Spark集群搭建简配+它到底有多快?【单挑纯C/CPP/HADOOP】

    最近耳闻Spark风生水起,这两天利用休息时间研究了一下,果然还是给人不少惊喜.可惜,笔者不善JAVA,只有PYTHON和SCALA接口.花了不少时间从零开始认识PYTHON和SCALA,不少时间答了 ...

  7. js 里面 写 C# 代码 遇到的问题

    js  代码块 必须放置在 body 里面

  8. springmvc继承activemq(原创)

    1.加入jar包 我项目是用maven构建的,所以这里就给大家贴一下配置了,具体jar大家可以参看下Activemq分类中的文章 <project xmlns="http://mave ...

  9. WPF 读写TxT文件

    原文:WPF 读写TxT文件 文/嶽永鹏 WPF 中读取和写入TxT 是经常性的操作,本篇将从详细演示WPF如何读取和写入TxT文件. 首先,TxT文件希望逐行读取,并将每行读取到的数据作为一个数组的 ...

  10. MPEG-DASH on IIS Practice in Action

    1. 准备  IIS Media Service已经安装准备好(如上),注意需要在2008上安装,2003安装不了,或者就算能安装也很麻烦 一个或多个码率的媒体文件如MP4已经准备好 DASH MPD ...