随笔分类 - 百鬼夜行
1
摘要:又是差分?! 自己写的时候不知道怎么差分,这个地方需要加强训练。 看了大佬的文章,他是这么说的: 70分代码的思路我们是站在人的角度处理问题,即按照他的思路(即题目要求)一步一步处理问题,优先解决人的需求; 100分代码思路中,我们优先处理场所需求,即判断出进入该场所需要的最早时间核酸报告(left
阅读全文
摘要:40分 #include<iostream> #include<string> #define error -1 using namespace std; int N,Tdef,Tmax,Tmin; string H; struct list {//不要修改 int time; string hos
阅读全文
摘要:暴力70(近几年都是),想要100肯定不能这么简单。 自己想的优化方法是,在计算每个位置的平均值时,如果左右有超界的,则停止向这个方向行动。 但是这个优化方法依旧超时(😓) 找了第一个方法,文章说每次删掉最后一行,添加新的一行,使用先前计算的数据,不需要每次都从头计算。 是个方法但是代码自己没写出
阅读全文
摘要:这算是本人第一次写(debug)出来大模拟的题。成就感max! 知识点: vector的查询(下标),插入(insert),复制(assign) queue的遍历输出(不能用for) 最重要的——求解多项式: 参考文章:(14条消息) CSP 202112-3 登机牌条码 (详细图解)_PolarD
阅读全文
摘要:暴力70分能拿到,100分不能 知识点: 了解到差分的思想,现在认为如果用到了一个数组来记录区间变化量,则可称为差分。 unique函数:【整理】C++中的unique函数 - nimphy - 博客园 (cnblogs.com) 参考别人的文章后自己写,第一次没过。 原因是 for(int i =
阅读全文
摘要:参考: https://blog.csdn.net/qq_43152052/article/details/112112038
阅读全文
摘要:1.应用于区间的修改和询问问题。 2.把给定的数据元素集A分成很多区间,对这些区间做很多次操作,每次操作是对某个区间内的所有元素做相同的加减操作。 3.差分数组对“区间修改”很高效,但是对“单点查询”并不高效。对于题型是“区间修改+单点查询”,此时需要用树状数组和线段树来求解。 参考: (14条消息
阅读全文
摘要:我原来的想法是将藏宝图中的坐标也按照(1,1)这样保存下来,每次选择一个绿化图中的树作为左下角的原点。改变藏宝图中的坐标,与绿化图中的树的坐标比较。但是这种方法行不通,而且思维比较混乱。 看了其他大佬的文章,发现有一位的思路比较好。 就什么都不变,就把藏宝图直接贴在绿化图上的感觉。把每一个位置都比较
阅读全文
摘要:没有好办法就暴力,没有好办法就模拟。 #include<iostream> using namespace std; struct node { int dis; bool dir;//1是向右 0是向左 } p[1005]; int num[1005];//用来记录每个位置有几个球 int sig
阅读全文
摘要:这道题开始是没思路的,看了一下题解。说是把时间抽象成时间点(主要思想)。 让计算机计算的是某个时刻发生的事情,不需要管一段时间发生了什么。这样也不好思考 自己写了,没过。感觉写的太乱。于是还是在网上找了一篇,说到了优先队列 关键点:优先队列 模拟 优先队列的英文:priority_queue 优先队
阅读全文
摘要:读完题马上就想到了二分答案,但是就是写了半天才写出来。 在二分的时候精度的缺失是问题所在。 #include<iostream> using namespace std; int k; double Cal(double A) { double n = A-3500 , ans = 0; if(A
阅读全文
摘要:参考https://blog.csdn.net/tigerisland45/article/details/66477733 上面的文章写了四种方法,十分佩服大佬这种思维程度。 关键点:索引,STL,List(双向链表),Vector(容器) 有点看不懂上面文章里的方法二,知道个大概但是总是感觉有点
阅读全文
摘要:#include<iostream> #include<cstring> using namespace std; int t[105]; int seat[105]; int rem[25]; int main() { int n; cin >> n; for(int i = 0 ; i < n
阅读全文
摘要:话不多说,直接上100分代码: #include<iostream> using namespace std; struct { int x,y; } pos[4]; int page[21][10]; int block[4][4]; int Index = 0; int n,final = 20
阅读全文
摘要:非常简单! 用两个数组,一个记录数据,另一个记录哪些位置的数据是有三个及以上相连的。 #include<iostream> using namespace std; int list[35][35]; int rec[35][35]; int main(){ int n,m; cin >> n >>
阅读全文
摘要:有两种方法: 1.普通的方法: #include<iostream> using namespace std; int main(){ string str; cin >> str; int ans = 0; for(int i = 0 ; i < str.size(); i++){ ans = a
阅读全文
摘要:#include<iostream> using namespace std; int run[12] = {31,29,31,30,31,30,31,31,30,31,30,31}; int ping[12] = {31,28,31,30,31,30,31,31,30,31,30,31}; int
阅读全文
摘要:#include<iostream> using namespace std; int list[501][501]; int main() { int n; cin >> n; for(int i = 1 ; i <= n ; i++) { for(int j = 1 ; j <= n ; j++
阅读全文
摘要:#include<bits/stdc++.h> using namespace std; string eple[101]; int main() { string src; cin >> src; int open = 0 , n = 0; cin >> open >> n; for(int i
阅读全文
摘要:#include<bits/stdc++.h> using namespace std; int num[1000+7]; int n1[1000+7][1000+7]; int main() { int n; cin >> n; for(int i = 0 ; i < n ; i++) { cin
阅读全文
1

浙公网安备 33010602011771号