E

给出三个序列共n个元素,每个元素值为1~n且不重

一次可以把一个元素换到另一个序列中,求最少操作次数使得三个序列(可为空)分别排序后并在一起为1~n顺序

题解

(伪)神仙题

随便dp,依次考虑每个数放在那里

由于要保证最终的顺序,所以放的序列的编号要单调

f[i][0/1/2],第i个放在0/1/2的最小操作数

code

#include <algorithm>
#include <iostream>
#include <cstdlib>
#include <cstring>
#include <cstdio>
#define fo(a,b,c) for (a=b; a<=c; a++)
#define fd(a,b,c) for (a=b; a>=c; a--)
#define min(a,b) (a<b?a:b)
using namespace std; int a[200002];
int f[200002][3];
int n,n1,n2,n3,i,j,k,l,ans,Ans; int main()
{
// freopen("e.in","r",stdin); scanf("%d%d%d",&n1,&n2,&n3);n=n1+n2+n3;
fo(i,1,n1) scanf("%d",&j),a[j]=0;
fo(i,1,n2) scanf("%d",&j),a[j]=1;
fo(i,1,n3) scanf("%d",&j),a[j]=2; memset(f,127,sizeof(f)); f[0][0]=f[0][1]=f[0][2]=0;
fo(i,0,n-1)
{
fo(j,0,2)
{
fo(k,j,2)
f[i+1][k]=min(f[i+1][k],f[i][j]+(k!=a[i+1]));
}
} printf("%d\n",min(min(f[n][0],f[n][1]),f[n][2]));
}

F

n个数,求一个x(x<=2^30-1)使得每个ai xor x二进制下一的个数相同

ai<=2^30-1

题解

折半,每边15位

设n个数最终1的个数为x,i的前15位异或后1的个数为ci

那么后15位的个数分别为x-c1,x-c2,x-c3...x-cn

差分一下变成c1-c2,c2-c3,c3-c4...,刚好与前15位的差分c2-c1,c3-c2,c4-c3...成相反数关系

处理出一边的情况,把序列取反哈希后丢到map里,再枚举另一边判断即可

code

#include <algorithm>
#include <iostream>
#include <cstdlib>
#include <cstring>
#include <cstdio>
#include <map>
#define fo(a,b,c) for (a=b; a<=c; a++)
#define fd(a,b,c) for (a=b; a>=c; a--)
#define mod 1145141919810ll
using namespace std; int a[101];
int b[101];
int n,i,j,k,l,x,s1,s2;
map<long long,int> hs;
map<long long,int> :: iterator I;
long long s; int get(int x)
{
int s=0; while (x)
{
++s;
x^=x&-x;
} return s;
} int main()
{
// freopen("f.in","r",stdin); scanf("%d",&n);
fo(i,1,n)
scanf("%d",&a[i]),b[i]=a[i]&32767,a[i]=a[i]>>15; fo(x,0,32767)
{
s=1;
fo(i,1,n)
{
s1=get(a[i]^x); if (i>1)
s=(s*233+(s1-s2+233))%mod; s2=s1;
} hs.insert(map<long long,int>::value_type(s,x));
} fo(x,0,32767)
{
s=1;
fo(i,1,n)
{
s1=get(b[i]^x); if (i>1)
s=(s*233+(s2-s1+233))%mod; s2=s1;
} I=hs.find(s);
if (I!=hs.end())
{
printf("%d\n",(*I).second*32768+x);
return 0;
}
} printf("-1\n");
}

CF1257E/F的更多相关文章

  1. Mysql_以案例为基准之查询

    查询数据操作

  2. 在 C# 里使用 F# 的 option 变量

    在使用 C# 与 F# 混合编程的时候(通常是使用 C# 实现 GUI,F#负责数据处理),经常会遇到要判断一个 option 是 None 还是 Some.虽然 Option module 里有 i ...

  3. 如果你也会C#,那不妨了解下F#(7):面向对象编程之继承、接口和泛型

    前言 面向对象三大基本特性:封装.继承.多态.上一篇中介绍了类的定义,下面就了解下F#中继承和多态的使用吧.

  4. 如果你也会C#,那不妨了解下F#(2):数值运算和流程控制语法

    本文链接:http://www.cnblogs.com/hjklin/p/fs-for-cs-dev-2.html 一些废话 一门语言火不火,与语言本身并没太大关系,主要看语言的推广. 推广得好,用的 ...

  5. 使用F#开发ASP.NET Core应用程序

    .NET Core 里的F# 在.NET Core刚发布时,就已经添加了对F#的支持.但因为当时F#组件还不完整,而一些依赖包并没有放在Nuget上,而是社区自己放到MyGet上,所以在使用dotne ...

  6. 如果你也会C#,那不妨了解下F#(6):面向对象编程之“类”

    前言 面向对象的思想已经非常成熟,而使用C#的程序员对面向对象也是非常熟悉,所以我就不对面向对象进行介绍了,在这篇文章中将只会介绍面向对象在F#中的使用. F#是支持面向对象的函数式编程语言,所以你用 ...

  7. 如果你也会C#,那不妨了解下F#(5):模块、与C#互相调用

    F# 项目 在之前的几篇文章介绍的代码都在交互窗口(fsi.exe)里运行,但平常开发的软件程序可能含有大类类型和函数定义,代码不可能都在一个文件里.下面我们来看VS里提供的F#项目模板. F#项目模 ...

  8. 如果你也会C#,那不妨了解下F#(4):了解函数及常用函数

    函数式编程其实就是按照数学上的函数运算思想来实现计算机上的运算.虽然我们不需要深入了解数学函数的知识,但应该清楚函数式编程的基础是来自于数学. 例如数学函数\(f(x) = x^2+x\),并没有指定 ...

  9. 如果你也会C#,那不妨了解下F#(3):F#集合类型和其他核心类型

    本文链接:http://www.cnblogs.com/hjklin/p/fs-for-cs-dev-3.html 在第一篇中,我们介绍了一些基础数据类型,其实那篇标题中不应该含有"F#&q ...

随机推荐

  1. 【神经网络与深度学习】【CUDA开发】【VS开发】Microsoft官方移植了Caffe配置过程说明

    想在Windows平台使用Caffe,吭哧吭哧下载了半天第三方库,后来忽然发现Microsoft官方移植了Caffe,配置起来简直太省心了- 1. 从Microsoft官方Github上下载Caffe ...

  2. 【VS开发】解决位图缩放失真

    当用以下函数加载一张位图时,当窗口发生重绘更改大小时,位图将失真: CBitmap bitmap;  bitmap.LoadBitmap(IDB_BITMAP2);  BITMAP bmp;  bit ...

  3. python logger 日志模块

    logger 日志 """logging配置""" import osimport logging.config # 定义三种日志输出格式 ...

  4. 100+ Python挑战性编程练习(1)

    目前,这个项目已经获得了7.1k  Stars,4.1k Forks. 初级水平是指刚刚通过Python入门课程的人.他可以用1或2个Python类或函数来解决一些问题.通常,答案可以直接在教科书中找 ...

  5. Hbase 0.92.1 Replication

    原集群 服务器名称 服务 sht-sgmhadoopnn-01 Master,NameNode,JobTracker sht-sgmhadoopdn-01 RegionServer,DataNode, ...

  6. laravel5.5部署

    一.环境: centos7 + apache2.6+mysql5.5+PHP7.2 确保php版本大于7.1,看帮助文档说是7就可以,但是我部署的时候提示要大于7.1,并且要装上必须的php扩展 PH ...

  7. python 链接mysql 修改查询删除语句

    import mysql.connector.pooling config = { "host": "localhost", "port": ...

  8. mysql 导出 导入sql 文件

    C:\Users\Eric>mysqldump -uroot -p      demo->数据库名 >  C:\Users\Eric\demo.sql    导出目录地址 导入 sq ...

  9. Python 从大型csv文件中提取感兴趣的行

    帮妹子处理一个2.xG 大小的 csv文件,文件太大,不宜一次性读入内存,可以使用open迭代器. with open(filename,'r') as file # 按行读取 for line in ...

  10. vue.js(1)--创建vue实例的基本结构

    vue实例基本结构与MVVM框架 (1)vue实例基本结构 <!DOCTYPE html> <html lang="en"> <head> &l ...