test19124's blog

test19124's blog

= Hello world! =

517雷达题解

# 雷达-第二课: 贪心算法-区间覆盖/字典序-2020最新版提高组初级课程 [题目链接](https://517coding.com/p/4000) ## 思路 用勾股定理求出区间 转化成区间覆盖问题 <!-- more --> ## 代码 ```cpp #include <bits/stdc++.h> using namespace std; struct jgt { int x,y; double z; } a[100010]; bool cmp(jgt a,jgt b) { return a.z<b.z; } int n,d,ans=1; int mai
more...

517最大余数题解

# 最大余数-第一课: 枚举技巧-状压/折半/尺取法-2020最新版提高组初级课程 [题目链接](https://517coding.com/p/3980) ## 思路 折半 + 二进制枚举 注意b数组要排个序~ <!-- more --> ## 代码 ```cpp #include <bits/stdc++.h> using namespace std; int n,mod; int a[1000010]; int b[1000010]; int tot; int find(int x) { int ans=-1; int l=0,r=tot-1; if(b[r
more...

517最小字典序题解

# 最大余数-第二课: 贪心算法-区间覆盖/字典序-2020最新版提高组初级课程 [题目链接](https://517coding.com/p/3980) ## 思路 两边取小的往内贪心 如果相同则比较下一层大小 <!-- more --> ## 代码 ```cpp #include <bits/stdc++.h> using namespace std; int n,tot; char a[2010]; int main() { scanf("%d%s",&n,&a); int l=0,r=n-1; while(l<=r) { bool flag;
more...

517异或和题解

# 按钮变色-第一课: 枚举技巧-状压/折半/尺取法-2020最新版提高组初级课程 [题目链接](https://517coding.com/p/3970) ## 思路 尺取法加强,记得开long long <!-- more --> ## 代码 ```cpp #include <bits/stdc++.h> using namespace std; int n,s; int a[1200000]; long long suma[1200000]; long long sumb[1200000]; int main() { scanf("%d",&n); for(int
more...

517最短连续子序列题解

# 最短连续子序列-第一课: 枚举技巧-状压/折半/尺取法-2020最新版提高组初级课程 [题目链接](https://517coding.com/p/3960) ## 思路 尺取法 <!-- more --> ## 代码 ```cpp #include <bits/stdc++.h> using namespace std; int n,s; int sum[1200000]; int a[1200000]; int main() { scanf("%d%d",&n,&s); for(int i=1;i<=n;i++) { scanf("%d", &a[i])
more...

debug的方法及策略

C++以及普及组选手多使用静态查错法与输出调试法 提高组选手可以适当使用对拍调试法 [https://www.bilibili.com/video/BV1sQ4y1K7T4/ 初级调试指南视频版] [https://www.bilibili.com/video/BV1he411p74Y/ 高级调试指南视频版] = 调试指南 = 1:在草稿纸上模拟程序的运行,写下一些关键变量的中间结果 2:利用打印调试法打印出这些中间变量的值 3:对比观察 <!-- more --> 下面介绍利用数据去查错的几种查错方法 == 静态查错法 == 静态查错法的意思是说,写完程序,先整体浏览一
more...

517按钮变色题解

# 按钮变色-第一课: 枚举技巧-状压/折半/尺取法-2020最新版提高组初级课程 [题目链接](https://517coding.com/p/3951) ## 思路 暴力dfs 易证:每个点最多会被翻转一次(2次不就翻回来了吗qwq) dfs枚举每个点是否会被翻,查看当前是否全部同色 <!-- more --> ## 代码 ```cpp #include <bits/stdc++.h> using namespace std; char a[10][10]; int X[5]={0,0,0,1,-1}; int Y[5]={0,1,-1,0,0}; map<char,ch
more...

517覆盖数轴题解

# 覆盖数轴-第二课:贪心算法-【中级班】517编程普及组 ## 描述 > 有一个长度为m的数轴,现在有n个区间,每个区间有一个左右端点,现在需要选择最少的区间,覆盖整个数轴。 <!-- more --> ## 输入 > 第一行两个整数n和m > 接下来n行,每行两个整数,表示区间。 ## 输出 > 输出最少的区间个数,覆盖整个数轴。如果无法覆盖,输出-1 ## 样例 ### 输入#1 ```txt 5 6 1 3 2 4 3 5 5 6 1 4 ``` ### 输出#1 ```txt 2 ``` ## 思路 贪心,先按右侧端点排序 之后再取 左侧端点<=右侧端点+
more...

517有负环最短路径题解

# 有负环最短路径-第十课:最短路径-【中级班】517编程普及组 ## 描述 > 给定一个有向图,求1到n的最短路径。 > 可以判断图中是否有负环。 <!-- more --> ## 输入 > 第一行两个整数n和m,表示点数和边数。 > 接下来m行,每行3个整数,表示一条有向边。 ## 输出 > 如果图中有负环,输出circle > 如果没有负环,但是从1无法到达n,输出 can't arrive! > 否则输出 1到n的最短距离 ## 样例 ### 输入#1 ```txt 3 3 1 3 3 1 2 1 2 3 1 ``` ### 输出#1 ```txt 2 ```
more...

517拼图游戏题解

# 拼图游戏-第四课:广搜-【中级班】517编程普及组 ![拼图游戏-第四课:广搜-【中级班】517编程普及组](https://i.loli.net/2021/07/25/4xMjbA9NZi2sHVD.png) <!-- more --> ```c++ #include <bits/stdc++.h> using namespace std; int mod=1000007; int ji[1000010]; int top; int me[1000010],to[1000010]; int X[4]={0,1}; int Y[4]={1,0}; struct zb { i
more...