CF Round #580(div2)题解报告
CF Round #580(div2)题解报告
T1 T2
水题,不管
T3
构造题,证明大约感性理解一下
我们想既然存在解
\(|a[n + i] - a[i]| = 1\)
这是必须要满足的
既然这样,那么图必须是这样的
\(-\),是相邻的两个数中的较小的一个,\(+\)是相邻的两个数中较大的
这样分配是肯定有解的
但是当n时偶数的时候,手玩一下就会发现,不可能满足+-交替,所以无解
#include<cstdio>
#include<iostream>
#include<queue>
#include<algorithm>
#include<cstring>
#include<cctype>
#include<vector>
#include<ctime>
#define LL long long
#define pii pair<int,int>
#define mk make_pair
#define fi first
#define se second
using namespace std;
inline int read(){int v = 0,c = 1;char ch = getchar();while(!isdigit(ch)){if(ch == '-') c = -1;ch = getchar();}while(isdigit(ch)){v = v * 10 + ch - 48;ch = getchar();}return v * c;
}
const int N = 5e5 + 3;
int a[N];
int n;
int main(){n = read();if(n & 1){int now = 0;for(int i = 1;i <= n;++i){if(!now) a[i] = i * 2 - 1,a[i + n] = i * 2;else a[i] = i * 2,a[i + n] = i * 2 - 1;now ^= 1;}printf("YES\n");for(int i = 1;i <= 2 * n;++i) printf("%d ",a[i]); } else printf("NO\n");return 0;
}
T4
分位考虑
这道题的关键在于给你张图,求最小环
由于点数和边数特别少,所以直接爆搜就好了
但是考虑多项式做法
最小环的本质是对于边\((u,v)\),去掉边后\((u,v)\)的最短路径\(+1\)
这可以在floyd的过程中搞一搞
当然,这是在边有边权的前提下
这道题目直接枚举每一条边然后bfs就好了
#include<cstdio>
#include<iostream>
#include<queue>
#include<algorithm>
#include<cstring>
#include<cctype>
#include<vector>
#include<ctime>
#define LL long long
#define pii pair<int,int>
#define mk make_pair
#define fi first
#define se second
const int INF = 0x3f3f3f3f;
using namespace std;
inline LL read(){LL v = 0,c = 1;char ch = getchar();while(!isdigit(ch)){if(ch == '-') c = -1;ch = getchar();}while(isdigit(ch)){v = v * 10 + ch - 48;ch = getchar();}return v * c;
}
const int N = 2e5 + 3;
LL a[N];
int n,ans;
int xx[65],yy[65];
int tot,rt;
struct edge{int to;int from;int nxt;
}e[N << 1];
int head[N];
int deep[N],fa[N];
int book[N];
int vis[N];
inline void add(int x,int y){e[++tot].to = y;e[tot].nxt = head[x];e[tot].from = x;head[x] = tot;
}
inline void dfs(int x,int dep){
// book[x] = 1;vis[x] = 1;for(int i = head[x];i;i = e[i].nxt){int y = e[i].to;if(y == rt && dep > 2) ans = min(ans,dep);else if(!vis[y]) dfs(y,dep + 1);}vis[x] = 0;
}
int main(){//freopen("A.in","r",stdin);//freopen("A.out","w",stdout);n = read();for(int i = 1;i <= n;++i) a[i] = read();for(int i = 0;i <= 62;++i){int sum = 0;for(int j = 1;j <= n;++j){if(a[j] & (1ll << i)){if(!xx[i]) xx[i] = j;else if(!yy[i]) yy[i] = j;sum++;if(sum == 3){printf("3\n");return 0; }}}if(sum == 2) add(xx[i],yy[i]),add(yy[i],xx[i]);//printf("%d %d\n",xx[i],yy[i]);}ans = INF;for(int i = 1;i <= n;++i){dfs(rt = i,1);if(ans == 3){printf("3\n");return 0; }}if(ans > n) printf("-1\n");else printf("%d\n",ans);return 0;
}
转载于:https://www.cnblogs.com/wyxdrqc/p/11375805.html
CF Round #580(div2)题解报告相关推荐
- CF Round #679 div2赛后总结
前言 好不容易遇到一次简单的div2,竟然才A了三题,可恶的第4题,死活调不出来QAQ. 比赛地址 A 题意:给你TTT组数据,每组数据nnn个整数(nnn是偶数),分别为a1,a2,...,ana_ ...
- cf round #421 div2 D. Mister B and PR Shifts
链接:http://codeforces.com/contest/820/problem/D 分析:|p[i]-i|每次只会变化1,先不考虑端点情况,就只有p[i]==i的时候变化,每次k+1的时候, ...
- CF Round#436 div2
额,这次的题目其实挺智障的.所以通过这次比赛,我也发现了自己是一个智障.... 不说太多,说多是泪... A. Fair Game 题意:给你一个数组,看你能否把它均分为两个所有元素均相同的子数组. ...
- CF1471(Round 694 div2) 题解
CF1471A 先从最简单的情况入手:数组中只有两个数 aaa 和 bbb. 令 a=cx+d,b=mx+k(0≤d,k<x)a=cx+d,b=mx+k(0\le d,k < x )a=c ...
- CF1467(Round 695 div2)题解
CF1467A 显然: nnn 为 111 时答案为 999 nnn 为 222 时答案为 989898 nnn 为 333 时答案为 989989989 当 n>3n>3n>3 时 ...
- 【题解报告】ZJNU综合训练(2021.1.26)
[题解报告]ZJNU综合训练(2021.1.26) B C D F H I J M 综合训练 ZJNU综合训练(2021.1.26) B:DP+搜索 | CF 1057C C:组合数学+dp | CF ...
- Codeforces round 654 赛后解题报告
Codeforces round 654 赛后解题报告 先吐槽一下怎么 A-D 都是结论题啊啊 A. Magical Sticks 我们可以先确定下来,我们一定只对于未进行过拼接的木棍拼接. 学过等差 ...
- 2015浙江财经大学ACM有奖周赛(一) 题解报告
2015浙江财经大学ACM有奖周赛(一) 题解报告 命题:丽丽&&黑鸡 这是命题者原话. 题目涉及的知识面比较广泛,有深度优先搜索.广度优先搜索.数学题.几何题.贪心算法.枚举.二进制 ...
- CSP-2019day1题解报告
day1题解报告 题目 T1 T2 从链想起 转为正解 T3(摘自同级大佬xez) 题目 T1传送门 T2传送门 T3传送门 T1 乍一看,这道题做过,可以用对称性做,如果他的长度过了一半,就输出1, ...
- 爆炸的符卡洋洋洒洒题解报告
爆炸的符卡洋洋洒洒题解报告 标签:动态规划 题目链接 来源:牛客网 解题思路: 显而易见的背包问题 但再观察a,b的数据范围,开不了那么大的dp数组 这就启发我们去优化,由于题目要求魔力总耗的是k的倍 ...
最新文章
- Android studio 设置忽略文件
- Linux_RHEV虚拟化_基础理论KVM
- SHT30温湿度传感器驱动设计分析及代码实现
- 下列设备中 微型计算机系统必须具备的是,计算机应用基础题库
- Windows下怎样设置jar包开机自启动运行
- eclipse导入Tomcat8源码
- 电脑编程用户注册界面java_用JSP/Servlet开发简单的用户注册系统
- Jenkins + Gitlab + Ansible--playbook 代码上线流程
- Reasoning about Entailment with Neural Attention-学习笔记
- Error creating bean with name ‘userController‘: Unsatisfied dependency expre
- Tomcat下找不到properties文件
- 结构变量的定义和引用
- 怎么搭建服务器集成环境配置文件,怎么搭建服务器集成环境配置文件
- 高德经纬度距离计算php,距离/面积计算-地图计算工具-开发指南-iOS 地图SDK | 高德地图API...
- 给Ubuntu配置静态IP地址
- Vue3.0调用PC端本地摄像头录像
- 【水文】2345——卸载!拜拜了您嘞
- 【Python基础】第十六篇 | 面向对象之高级篇
- 学习自旋电子学的笔记00:杂谈(闲话) OOMMF软件的安装
- STM32CubeMX基于HAL库实现简单串口通信
热门文章
- 支持x86/aarch/mips/loongarch的jogamp-2.3.2源码开源
- LINUX下载编译OpenAL Soft
- VS:无法将“char *”转换为“const wchar_t *”/不能将参数从“const char []”转换为“const wchar_t *”
- 电子双缝干涉,可以在穿过缝前进行探测
- 下载mp4v2代码的链接
- 纽微特记事:有了工作产出,领导吓坏了
- 管理感悟:派谁进行技术合作
- mysql sys exec_mylab_sys_exec UDF调用mysql外部系统命令(For linux)
- 网络请求返回数据格式_原生 Ajax 详解 - 响应数据格式
- python 移动平均线_如何使用NumPy计算移动平均线?