- 博客(16)
- 收藏
- 关注
原创 【P1162】填涂颜色--DFS
注:1.会存在左上角为1的情况,因此存数据A[i][j]时下标从为1~N,然后从A[0][0]开始遍历(假设外面的多一层0)。Tips:用dfs:从左上角的零开始深搜遍历,把所有能走过的零标记一下,遇到围墙(1)或者越界就return。不符合题目要求,因此判别标准为>N+1(假设最右边和最下边还有一层零)。如果越界判别标准是>N。显然左下角的两个0遍历不到,P1162 填涂颜色。
2023-04-23 20:02:45
320
原创 [TJOI2018]数学计算
从一个发这道题题解的dalao那里学到好多QAQ对于每一组的数据,把他们的初始值全部视为1,每一步要么把一个数设为其他值,要么把一个数设为1,所以就是个单点修改,要输出的是前面的乘积,也就是区间乘积。所以明显是线段树,(在我发现是线段树后想开摆时,在题解中发现了zkw树orz)代码如下(示例):#include <bits/stdc++.h>#define int long long//需要把int main() 改为signed main()using namespace s.
2022-04-25 15:01:33
697
原创 【蓝桥杯】路径
只需要求最小公倍数建边,Floyd求最短路即可。ps:数组要放在全局变量,放到main函数里会作为局部变量导致栈溢出代码如下(示例):#include <bits/stdc++.h>#define ll long long#define INF 0x3f3f3f3fusing namespace std;ll gcd(ll a,ll b){ if(a%b==0) return b; else return gcd(b,a%b);} long long Edg.
2022-01-02 16:36:57
1922
2
原创 【蓝桥杯】货物摆放
因为题目是要因式分解,所以根据一个合数进行质因数分解有唯一式子的性质,先对该数质因数分解#include <bits/stdc++.h>using namespace std;int main(){ long long N=2021041820210418; for(long long i=2;i<=N;i++){ if(N%i==0){//能被当前质数整除 while(N%i==0){ cout<<i<<" "; .
2021-12-31 13:06:52
875
原创 【蓝桥杯】直线
#include <bits/stdc++.h>#include <set>using namespace std;struct Point { int x,y;}A[25*25];//存点 set< pair<double,double> >ans;//用set去重,二元组为<斜率,截距> int main(){ ans.clear(); int flag=1; double k,jj;//斜率和截距 for(in
2021-12-31 12:32:58
744
原创 【CSP202112-2】序列查询新解
文章目录一、题目二、解题思路三、完整代码一、题目二、解题思路通过f(x)的取值可以看到,A[i]-A[i-1]的区间中f(x)值都一样,共有n+1个这样的区间,在每个区间里g可以看作每r个一组的等差数列,所以可以通过遍历1~n+1来做这道题。 for(long long i=1;i<=n;i++){ cin>>A[i]; B[i]=A[i]-A[i-1];//区间长度 } B[n+1]=N-A[n];使用等差数列求和的话,要保证r个g
2021-12-30 13:40:43
2416
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人