Others
文章平均质量分 79
FSYo
我不去想是否能够成功,
既然选择了远方,
便只顾风雨兼程
展开
-
CSP-S 复习 ---- 高精度全家桶
vectorvectorvector 实现,高精除高精没有写,口胡取模的时候重载 <<<,然后 ∗10*10∗10 相当于在最前面插一个数字,然后高精减就可以取模除法更取模插不多,暴力减就可以了乘法用了 FFTFFTFFT#include<bits/stdc++.h>#define cs constusing namespace std;#define ...原创 2019-10-31 19:52:19 · 306 阅读 · 0 评论 -
P3482 SLO-Elephants [图论,置换]
传送门luogu 第一篇题解 #include<bits/stdc++.h>#define N 1000050#define LL long long#define inf 1000000000000000using namespace std;int to[N],n,a[N],b[N],w[N],vis[N];LL ans,cnt,Sum,Min,to...原创 2018-12-20 20:49:32 · 424 阅读 · 0 评论 -
最小面积1 [模拟][或树状数组]
传送门可以把最外两层取出来然后枚举选哪一个出来 , 这样做是O(1)的我的做法是枚举每次少哪一个点 , 在树状数组里修改 , 然后查最大最小就可以 , 这样是O(nlogn)的另外 , 注意 #define inf 0x7fffffff如果是0x3fffffff的话不够大#include<bits/stdc++.h>#define N 50050#def...原创 2018-12-30 14:24:56 · 189 阅读 · 0 评论 -
最小面积2 [模拟][dfs]
传送门训练思维与代码能力的好题题目要求取出3个点 , 发现这3个点一定是在最外3层 , 这样才是最优的把最外的4层的点取出来(第4层用来统计答案) , dfs选3个点删除就好#include<bits/stdc++.h>#define N 50050#define inf 0x7fffffffusing namespace std;struct Node{in...原创 2018-12-30 14:28:04 · 124 阅读 · 0 评论 -
欢乐测5题
比赛链接做作业及维护每个时间点需要用笔的人数, 差分数组可以On解决#include<bits/stdc++.h>#define N 1050using namespace std;int n,d[N],ans,Max;int main(){ scanf("%d",&n); for(int i=1;i<=n;i++){ int x,y,z; ...原创 2019-01-28 17:54:13 · 268 阅读 · 0 评论 -
19.02.15 Test 3 题 (easy)
光盘用一个栈存初始状态,两个栈模拟一下即可#include<bits/stdc++.h>#define N 100050using namespace std;struct STA{ int s[N],top; void init(){top=0;} void Push(int i){s[++top] = i;} int Top(){return s[top];...原创 2019-02-15 15:53:36 · 144 阅读 · 0 评论 -
[SCOI2010]传送带 [三分法]
传送门考虑先定一边, 即在AB上选x, 定义F(x) 为x到d的最短距离最短距离为XH, 并且当且仅当P与M重合时最短,往左右都会变长, 于是F(x)为单峰函数, 当X确定时, 可以三分求解又有 ans = min(dis(X,A)/Q + F(x)) , 可以证明ans 是单调的令AB与ED交于F, ans = AF*sina - (sinb-sina)*AX. 但因为是在线...原创 2019-02-07 23:17:34 · 776 阅读 · 0 评论 -
CF845E Fire in the City [二分+差分]
传送门很容易想到二分答案, 然后离散化一下, 找出上下左右最偏僻的点再判断矩阵覆盖可以用二维的差分#include<bits/stdc++.h>#define N 1005using namespace std;int read(){int x; scanf("%d", &x); return x;}int n, m, k;struct Node{int...原创 2019-07-11 17:47:18 · 482 阅读 · 0 评论 -
cinema[离散化]
传送门 #include<bits/stdc++.h>#define N 200005using namespace std;int a[N],b[N],c[N],x[N*3],ans;int n,m,tot,siz,num[N],joy[N],sat[N];int read(){ int cnt=0;char ch=0; while(!isdigit(ch))ch...原创 2018-11-09 19:30:40 · 229 阅读 · 0 评论 -
开车旅行[巧妙的倍增][set]
传送门对于找第一第二近,用set+lower_bound,预处理出nxt_A nxt_B 表示A,B下一步走到哪里然后倍增 , st_A[i][j] 表示从i往后2^j步A走了多少 B同理nxt[i][j] 表示往后走2^j步的位置类似lca那样预处理就好了//一直RE但对拍一小时后的伪AC代码#include<bits/stdc++.h>#define N ...原创 2018-10-28 20:19:48 · 148 阅读 · 0 评论 -
对拍时如何生成一棵树
这是困扰我很久的难题经过巨佬提示,我发现很简单--> 随便建图,并查集判环,建到n-1条边就可以了#include<bits/stdc++.h>using namespace std;int n,m,cnt,fa[100015];int find(int x){ return x==fa[x]?x:fa[x]=find(fa[x]);}int main(...原创 2018-10-15 21:15:59 · 1596 阅读 · 10 评论 -
枚举,模拟,递推,递归
枚举形式 数据范围 遍历方式 多项式 n^k for 递推 指数 k^n 递归 位运算 排列 n! 递归 组合 C(m,n) 递归+剪枝 前缀和用O(1)的时间查询静态区间的sum(l,r)或sum((l1,l2),(r1,r2))的矩阵和一维 sum[i]=sum[i-1]+a[...原创 2018-08-20 17:30:50 · 255 阅读 · 0 评论 -
二分或二分答案
//二分答案是最容易写挂的1.while(l<r) 一定是< 且在l==r时退出循环2.如下pd(mid)的mid可以作为答案时,l=mid或r=mid 不能作为答案干脆在+1/-1,因为r/l已经不可能是答案了3.如果答案要求尽量小,为第一种,尽量大,为第二种//单调递增序列a中查找>=x的数中最小的一个(即x或x的后继) while(l<r){ ...原创 2018-08-20 17:45:01 · 248 阅读 · 0 评论 -
离散化
离散化是什么:一些数字,他们的范围很大(0-1e9),但是个数不算多(1-1e5),并且这些数本身的数字大小不重要,重要的是这些数字之间的相对大小(比如说某个数字是这些数字中的第几小,而与这个数字本身大小没有关系,要的是相对大小)(6 8 9 4 离散化后即为 2 3 4 1)(要理解相对大小的意思)(6在这4个数字中排第二小,那么就把6离散化成2,与数字6本身没有关系, 8,9,4亦是如此)(2...转载 2018-08-20 18:05:03 · 215 阅读 · 0 评论 -
聚会[前缀和][取模的细节]
【描述】 在成都的一条街道上,一共有 N 户人家,每个家庭有 Xi 个人,他们和谐的生活在 一起,作为全国和谐街道,他们经常会小范围组织活动,每次活动会选择一户作为聚点, 并要求某些家庭参加,为了方便通知,村长每次邀请位置连续的家庭。因为每户人数不 同,每个家庭之间有一定距离,村长希望你计算出每次邀请的家庭的移动代价。第 i 个家 庭移动到家庭 j的代价是: Xi*dis(i,j) dis...原创 2018-10-02 13:56:34 · 428 阅读 · 0 评论 -
矩阵分组[二分答案]
矩阵分组 【描述】 有 N 行 M 列的矩阵,每个格子中有一个数字,现在需要你将格子的数字分为 A,B两部分 要求: 1、每个数字恰好属于两部分的其中一个部分 2、每个部分内部方块之间,可以上下左右相互到达,且每个内部方块之间可以相互到达,且最多拐一次弯 如: AAAAA AAAAA AAAAA AABAA BaAAA AAABB ABBBA BBA...原创 2018-10-04 11:59:58 · 717 阅读 · 0 评论 -
数球[构造]
Description小A有n个球,编号分别为1到n,小A每次都会从n个球中取出若干个球,至少取一个,至多取n个,每次取完再放回去,需要满足以下两个条件。 每次取出的球的个数两两不同。 每次取出的球的集合两两不包含。包含是指,对于两次取球,对于取的数目少的那次取球的所有球都出现在取的数目多的那次取球中,例如{1,2}和{1,2,4},{1,2}和{2,3}则不算作包含。 而小A现在突然想知道他...原创 2018-09-22 17:52:50 · 939 阅读 · 0 评论 -
双栈排序[并查集]
分析 网上很多人用二分图染色,但是并查集来判断冲突性也是极好的首先,单栈排序有这么一个性质网上有个证明(原网https://blog.csdn.net/linwh8/article/details/52606751)能判定之后我们令x_1表示x放在1里面如果存在x<y<k 使q[k]<q[x]<q[i] 也就是x,y必须放在两...原创 2018-09-23 09:52:02 · 224 阅读 · 0 评论 -
阶乘[分解质因数][二分答案]
描述有n个正整数a[i],设它们乘积为p,你可以给p乘上一个正整数q,使p*q刚好为正整数m的阶乘,求m的最小值。输入共两行。第一行一个正整数n。第二行n个正整数a[i]。输出共一行一个正整数m。样例输入16样例输出3提示样例解释:当p=6,q=1时,p*q=3!【数据范围与约定】对于10%的数据,n<=10对于30%...原创 2018-10-05 22:48:39 · 589 阅读 · 0 评论 -
位运算
n在二进制中的第k位 n&(1<<k) n在二进制中的前k位 n&((1<<(k+1)-1) n在二进制中的第k位区反 n^(1<<k) n在二进制中的第k位赋值为1 n|(1<<k) n在二进制中的第k位赋值为0 n|(~(1<<k)) 成对变换 ...原创 2018-08-19 21:33:35 · 154 阅读 · 0 评论