cf1206解题报告

A

模拟

#include <bits/stdc++.h>
using namespace std;
int n,m,a[1010],b[12910];
int dsr[1111];
int main() {
scanf("%d",&n);
for(int i=1;i<=n;++i) scanf("%d",&a[i]),dsr[a[i]]=1;
scanf("%d",&m);
for(int j=1;j<=m;++j) scanf("%d",&b[j]),dsr[b[j]]=1;
for(int i=1;i<=n;++i) {
for(int j=1;j<=m;++j) {
if(!dsr[a[i]+b[j]]) {
cout<<a[i]<<" "<<b[j];
return 0;
}
}
}
return 0;
}

B

普及dp,其实不用开数组

#include <bits/stdc++.h>
#define ll long long
using namespace std;
const int _=2e5+7;
ll n,a[_],b[_],f[_][2];
int main() {
cin>>n;
for(ll i=1,x;i<=n;++i) {
cin>>x;
a[i]=abs(x-1),b[i]=abs(x+1);
}
f[0][1]=100000000000000000LL;
for(ll i=1;i<=n;++i) {
f[i][0]=min(f[i-1][0]+a[i],f[i-1][1]+b[i]);
f[i][1]=min(f[i-1][1]+a[i],f[i-1][0]+b[i]);
}
cout<<f[n][0];
return 0;
}

C

贪心,套路,构造

互相差1,那i和i+n+1就是相差1的。

根据样例可以这样构造。

\(a[1]=1,a[n+1]=2;\)

\(a[2]=2n,a[n+2]=2n-1;\)

\(a[3]=3,a[n+3]=4;\)

\(a[4]=2n-2,a[n+4]=2n-3;\)

\(…………\)

无解瞎猜偶数,很套路

#include <bits/stdc++.h>
#define ll long long
using namespace std;
const int _=2e5+7;
int n,a[_],b[_];
int main() {
scanf("%d",&n);
if(n%2==0) return puts("NO"),0;
int l=1,r=n*2;
for(int i=1;i<=n;++i) {
if(i&1) {
a[i]=l;
++l;
b[i]=l;
++l;
} else {
a[i]=r;
--r;
b[i]=r;
--r;
}
}
printf("YES\n");
for(int i=1;i<=n;++i) printf("%d ",a[i]);
for(int i=1;i<=n;++i) printf("%d ",b[i]);
return 0;
}

D

这个题很容易想歪呀。

二进制的x位为1的数的个数有3个及其以上。

答案就是3,且没有比他再小的ans了。

首先先去掉没用的0。

剩下的数如果大于120的话,必定有上述情况。

因为每一个数至少包含一位。

然后范围缩小到100了。

暴力Floyd找最小环,学到了。

#include <bits/stdc++.h>
#define ll long long
using namespace std;
int n,ans,dis[207][207],g[207][207];
std::vector<ll> a;
int main() {
scanf("%d",&n);
for(int i=1;i<=n;++i) {
ll x;cin>>x;
if(x) a.push_back(x);
}
n=a.size();
if(n>=130) return puts("3"),0;
memset(dis,0x3f,sizeof(dis));
memset(g,0x3f,sizeof(g));
for(int i=1;i<=n;++i)
for(int j=1;j<=n;++j)
dis[i][j]=g[i][j]=233;
for(int i=1;i<=n;++i) {
for(int j=1;j<=n;++j) {
if(i==j) continue;
if(a[i-1]&a[j-1]) dis[i][j]=g[i][j]=1;
}
}
ans=200;
for(int k=1;k<=n;++k) {
for(int i=1;i<k;++i)
for(int j=i+1;j<k;++j)
ans=min(ans,dis[i][j]+g[j][k]+g[k][i]);
for(int i=1;i<=n;++i)
for(int j=1;j<=n;++j)
dis[i][j]=min(dis[i][j],dis[i][k]+dis[k][j]);
}
if(ans==200) ans=-1;
printf("%d\n",ans);
return 0;
}

E,F

看见交互题就烦,虽然不是不能做。

算了,咕咕了。

cf1206解题报告的更多相关文章

  1. CH Round #56 - 国庆节欢乐赛解题报告

    最近CH上的比赛很多,在此会全部写出解题报告,与大家交流一下解题方法与技巧. T1 魔幻森林 描述 Cortana来到了一片魔幻森林,这片森林可以被视作一个N*M的矩阵,矩阵中的每个位置上都长着一棵树 ...

  2. 二模13day1解题报告

    二模13day1解题报告 T1.发射站(station) N个发射站,每个发射站有高度hi,发射信号强度vi,每个发射站的信号只会被左和右第一个比他高的收到.现在求收到信号最强的发射站. 我用了时间复 ...

  3. BZOJ 1051 最受欢迎的牛 解题报告

    题目直接摆在这里! 1051: [HAOI2006]受欢迎的牛 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 4438  Solved: 2353[S ...

  4. 习题:codevs 2822 爱在心中 解题报告

    这次的解题报告是有关tarjan算法的一道思维量比较大的题目(真的是原创文章,希望管理员不要再把文章移出首页). 这道题蒟蒻以前做过,但是今天由于要复习tarjan算法,于是就看到codevs分类强联 ...

  5. 习题:codevs 1035 火车停留解题报告

    本蒟蒻又来写解题报告了.这次的题目是codevs 1035 火车停留. 题目大意就是给m个火车的到达时间.停留时间和车载货物的价值,车站有n个车道,而火车停留一次车站就会从车载货物价值中获得1%的利润 ...

  6. 习题: codevs 2492 上帝造题的七分钟2 解题报告

    这道题是受到大犇MagHSK的启发我才得以想出来的,蒟蒻觉得自己的代码跟MagHSK大犇的代码完全比不上,所以这里蒟蒻就套用了MagHSK大犇的代码(大家可以关注下我的博客,友情链接就是大犇MagHS ...

  7. 习题:codevs 1519 过路费 解题报告

    今天拿了这道题目练练手,感觉自己代码能力又增强了不少: 我的思路跟别人可能不一样. 首先我们很容易就能看出,我们需要的边就是最小生成树算法kruskal算法求出来的边,其余的边都可以删掉,于是就有了这 ...

  8. NOIP2016提高组解题报告

    NOIP2016提高组解题报告 更正:NOIP day1 T2天天爱跑步 解题思路见代码. NOIP2016代码整合

  9. LeetCode 解题报告索引

    最近在准备找工作的算法题,刷刷LeetCode,以下是我的解题报告索引,每一题几乎都有详细的说明,供各位码农参考.根据我自己做的进度持续更新中......                        ...

随机推荐

  1. Java8 新特性 Stream() API

    新特性里面为什么要加入流Steam() 集合是Java中使用最多的API,几乎每一个Java程序都会制造和处理集合.集合对于很多程序都是必须的,但是如果一个集合进行,分组,排序,筛选,过滤...这些操 ...

  2. CentOS安装vsftpd FTP后修改默认21端口方法

    第一步:修改配置文件 vi /etc/vsftpd/vsftpd.conf 首先需要在vsftpd配置文件中添加: listen_port=1802pasv_enable=YESpasv_min_po ...

  3. golang学习笔记 go 相关命令

    go build 命令一些可选项的用途和用法 在运行go build命令的时候,默认不会编译目标代码包所依赖的那些代码包.当然,如果被依赖的代码包的归档文件(*.a)不存在,或者源码文件有了变化,那么 ...

  4. 【leetcode-449】序列化和反序列化二叉搜索树

    序列化是将数据结构或对象转换为一系列位的过程,以便它可以存储在文件或内存缓冲区中,或通过网络连接链路传输,以便稍后在同一个或另一个计算机环境中重建. 设计一个算法来序列化和反序列化二叉搜索树. 对序列 ...

  5. Eureka和ZooKeeper的区别

    首先我们先说下: RDBMS==>(MySql,Oracle,SqlServer等关系型数据库)遵循的原则是:ACID原则(A:原子性.C:一致性.I:独立性.D:持久性.). NoSql==& ...

  6. Jenkins的使用(三)-------Publish over SSH和Publish over FTP

    七.构建后操作 1.使用Publish over SSH 1.左边菜单栏    Manage Jenkins --->ManagePlugins--->可选插件,然后搜索 Publish ...

  7. Java集合大全

    上图为整理的集合类图关系,带对号标志的为线程安全类. 区别说明: 1.List Set Map Queue的区别List: 有序,可以多个元素引用相同的对象Set: 无序,不重复,不可以多个元素引用相 ...

  8. ObjC: 委托模式

    转自:http://marshal.easymorse.com/tech/objc-%e5%a7%94%e6%89%98%e6%a8%a1%e5%bc%8f 在ObjC中,经常提到委托模式(deleg ...

  9. 互联网企业级监控系统 OpenFalcon

    Open-Falcon 人性化的互联网企业级监控系统,Open-Falcon 整体可以分为两部分,即绘图组件.告警组件.其中: 安装绘图组件 负责数据的采集.收集.存储.归档.采样.查询.展示(Das ...

  10. springboot工程启动即执行一段代码

    最近在做一个项目, 需要Tomcat启动后就执行一段代码 在这里需要用到CommandLineRunner这个接口, Spring boot的CommandLineRunner接口主要用于实现在应用初 ...