摘要: 矩阵化一维 前缀和思想: for(ri i=1;i<=n;i++) for(ri j=1;j<=m;j++) { scanf("%lld",&arr[i][j]); arr[i][j]=arr[i-1][j]+arr[i][j-1]-arr[i-1][j-1]+arr[i][j]; } 应用: 题目 阅读全文
posted @ 2019-10-30 13:00 VxiaohuanV 阅读(197) 评论(0) 推荐(0)
摘要: 倍增发: 快速求祖先 代码 void dfs1(int u,int f) { fa[u]=f; vis[u]=1; dep[u]=dep[f]+1; for(ri i=1;(1<<i)<=dep[u];i++) anc[u][i]=anc[anc[u][i-1]][i-1]; for(ri i=he 阅读全文
posted @ 2019-10-29 18:24 VxiaohuanV 阅读(151) 评论(0) 推荐(0)
摘要: 结构体中的比较 struct dian{ int l,r; bool operator <(const dian &t)const { if(r==t.r) return l>t.l; return r<t.r; } }p[N]; sort的专用 cmp bool cmp1(const dian & 阅读全文
posted @ 2019-10-27 20:58 VxiaohuanV 阅读(225) 评论(0) 推荐(0)
摘要: 相关知识: strcmp(s1,s2)比较2个字符串的大小; strcpy (s1,s2) 将s2复制给s1; strncmp(s1,s2,开始,结束)比较这个长度下的字符串。 char s[N][N] scanf("%s",s[i]) s[i][j] 表示第 i 个字符串的 第j个元素; 应用 : 阅读全文
posted @ 2019-10-27 20:08 VxiaohuanV 阅读(525) 评论(0) 推荐(0)
摘要: 区间问题: 区间选点问题 右端点排序,now标记点。 数轴上有N个闭区间[Ai, Bi]。取尽量少的点,使得每个区间内都至少有一个点(不同区间内含的点可以是同一个)。 数轴上有N个闭区间[Ai, Bi]。取尽量少的点,使得每个区间内都至少有一个点(不同区间内含的点可以是同一个)。 数轴上有N个闭区间 阅读全文
posted @ 2019-10-27 16:58 VxiaohuanV 阅读(201) 评论(0) 推荐(0)
摘要: 太鼓达人 不知道有木有小伙伴,看了很多题解,还是不是很懂的,(比如说我) 我也不知道为什么这道题卡我很久,╮(╯▽╰)╭(可能是位运算的问题 下面会解释一下 ) 下面是我突然顿悟(强行想通,没有证明的理解可能是错的 哈哈) & 运算 是 两个数二进制 对齐后 上下都是 1 答案对应的位数 就是1 不 阅读全文
posted @ 2019-10-25 21:15 VxiaohuanV 阅读(192) 评论(0) 推荐(0)
摘要: // 离散化点 思路应该是对的 吧 但没时间去检查编译上的错误 #include using namespace std; const int M =1005; #define ri register int int n,sum; struct dian{ int x,y,id,bj,zlin; }a[M],yuan[M],arr[M][M]; int m,X[M],Y[M],m... 阅读全文
posted @ 2019-10-25 13:24 VxiaohuanV 阅读(139) 评论(0) 推荐(0)
摘要: 第二题的思路想出来了,但是代码实现太慢了 一 是天冷手冻僵了,打字慢。 二 是代码的实现能力真的弱??? 三 是键盘的空格有毛病?? (逃避??) 解决方案: — 买个手套。 二 把每一道题当做考试,代码一次过; 三 在坏情况下心态要好,其次笨鸟先飞,先找个好电脑。 第3题 ╮(╯▽╰)╭ 完全没有 阅读全文
posted @ 2019-10-25 12:48 VxiaohuanV 阅读(129) 评论(0) 推荐(0)
摘要: 图的联通性问题 ╮(╯▽╰)╭ 一 无向图的联通性问题 求割点 桥: 点和边的双联通分量的区别: 无穷大1和2在不属于点的双联通分量,属于边双 联通分量 求点的双联通分量: 求边的双联通分量: 有向图的强联通 无向图求加多少条边变成整个双联通 缩点后 根节点的数量+1除以2; 有向图加多少条边和变成 阅读全文
posted @ 2019-10-24 15:05 VxiaohuanV 阅读(258) 评论(0) 推荐(0)
摘要: 组合数取mod 条件mod是质数,inv 是逆元,fac是阶层; ll fact[maxn],inv[maxn]; ll Pow(ll x,ll n){ ll ans=1,base=x; while(n){ if(n&1) ans=ans*base%mod; base=base*base%mod; 阅读全文
posted @ 2019-10-22 21:35 VxiaohuanV 阅读(158) 评论(0) 推荐(0)