首页 > TAG信息列表 > CQOI2014

做题记录:P3166 [CQOI2014]数三角形

题目链接 题意:给定 (n+1)(m+1)(n+1)(m+1) 个点的网格图,任意投三个点,求三角形的个数。 首先,不考虑三点共线的情况,方案数可以很轻松的得出来。 在 (n+1)(m+1)(n+1)(m+1) 个点中找到 33 个点,计算一下组合数 C_{(n+1)(m+1)}^3C(n+1)(m+1)3​ 即可。 三点共线分为两种情况。

题解P3164 [CQOI2014]和谐矩阵

很明显是一道高斯消元解线性异或方程组。 对于一个 \(n\times m\) 的矩阵,我们给每个点编一个号, 对于第 \(i\)行,第 \(j\) 列的点,则有 \(p=(i-1)\times m+j\)。 那么与它相邻的点的编号就出来了, 分别是 \(p_1=p-m,p_2=p+m,p_3=p-1,p_4=p+1\)。 那么对于每一个点,我们都可以列出

题解P3165 [CQOI2014]排序机械臂

P3165 [CQOI2014]排序机械臂 一道Splay模板题,只不过需要注意一些细节 直接上代码 #include<iostream> #include<cstdio> #include<queue> #include<algorithm> using namespace std; const int N = 1e5 + 5, INF = 0x3f3f3f3f; typedef pair<int, int> PII; struct tree

BZOJ-3505 [Cqoi2014]数三角形(计数+容斥)

题目描述   给定一个 \(n\times m(1\leq n,m\leq 1000)\) 的网格,计算三点都在格点上的三角形共有多少个。注意三角形的三点不能共线。 分析   一共有 \((n+1)(m+1)\) 个点,所以任选三个点的总方案数为 \(\dbinom{(n+1)(m+1)}{3}\)。   三点共线的方案数等于横着的 \(+\) 竖着

nowcoder19934 [CQOI2014]数三角形

链接 点击跳转 题解 答案等于C(n+1)(m+1)3C_{(n+1)(m+1)}^3C(n+1)(m+1)3​减去三点共线的情况数 fi,jf_{i,j}fi,j​表示以格点(i,j)(i,j)(i,j)为右下角的点时,选三点共线的方案数 fi,jf_{i,j}fi,j​先赋值为fi−1,j+fi,j−1−fi−1,j−1f_{i-1,j}+f_{i,j-1}-f_{i-1,j-1}fi−1

[CQOI2014]危桥

[CQOI2014]危桥  有点神仙的最大流  在Ta的博客查看 就是这样做,(F1+F2)/2后对应a的走法,(F1-F2)/2后对应b的走法 可以拼凑出合法的增广路,并且两者不会相交(整体除以2容量认为是1)。 每个边也不会走大于1次   #include<bits/stdc++.h>#define reg register int#define il inline#de

P3167 [CQOI2014]通配符匹配 题解

题目   题目大意 给出一个字符串,其中包含两种通配符 ‘?’和 ‘*’ ,‘?’可以代替一个字符,‘*’可以代替一个字符串(长度可以为0) 然后给出几个字符转,判断能否用给出的字符串表示出来   样例解释 给出字符串:*aca?ctc 判断字符串 :acaacatctc 此时用 * 代替 aba 用 ?代替了t,所以输出Y

[CQOI2014]数三角形

[CQOI2014]数三角形 给定\(n\times m\)的网格,求三个点在其格点上的三角形个数,1<=m,n<=1000。 解 法一:直接 显然为组合计数问题,关键在于划分问题,注意到一个三角形必然会被一个最小的矩形所限制,于是可以以矩形来划分,而现在问题变成对一个矩形内最大的三角形的方案数,显然最大三角形关

bzoj3507:[Cqoi2014]通配符匹配

传送门 AC自动机也可以写的啊,就是判断多了点,思路和KMP的挺像的 具体的可以参考一下这一篇 然后贴一个代码: #include<cstdio> #include<iostream> #include<algorithm> #include<cstring> #include<vector> #include<queue> using namespace std; void read(int &x) { char c

CQOI2014 数三角形

数三角形 直接正着做不好做,那么考虑整体减去部分。 首先算出如果可以3点共线,总共多少个,显然是C[n*m][3]。 接下来考虑共线的情况: 横排的显然是n*C[m][3],竖排的就是m*C[n][3]。 比较麻烦一点的是斜着的,乍一看好像统计斜着的n3? 实际上,有这样一个结论: 对于点(a,b) (x,y)连成的线段而言

[CQOI2014]数三角形

传送门 题意:给定一个nxm的网格,计算三点都在格点上的三角形共有多少个?注意三角形的三点不能共线. 分析:nxm的网格有tot=(n+1)*(m+1)个格点,暴力算出所有方案数\(C_{tot}^3\),然后减去平行于x轴和y轴的共线三角形\((n+1)*C_{m+1}^3\)和\((m+1)*C_{n+1}^3\),最后减去倾斜直线上的共

CQOI2014 排序机械臂

传送门 突然发现自己不大会维护位置这种题……学习了一下。 具体的操作还是使用\(fhq-treap\)实现。什么split,merge都一样。问题是如何求位置。 首先我们在读入的时候,保存每个节点的权值和下标,并且按照权值进行排序,同时把它插入到一棵\(fhq-treap\)中。 之后我们怎么查找一个节点所