[luogu 3773][CTSC 2017]吉夫特】的更多相关文章

 传送门  Solution 输入一个长度为n的数列,求有多少个长度大等于2的不上升子序列满足: \[\prod_{i=2}^{k} C(a_{b_{i-1}},a_{b_i}) mod\ 2 >0 \] 答案对1e9+7取模 根据Lucas定理: \[C\ (n,\ m)\ ≡\ C\ (\frac{n}{p},\frac{m}{p})*\ C\ (n\%p,\ m\%p)\ (mod\ p)\] 可以发现,只要满足m是n的子集,或者说是(n&m)=m即可. 令f[i]表示从\(a_i\)…
题面 首先有个结论:$C_n^m$为奇数当且仅当$m$是$n$的一个子集 于是从后往前推,记录每个数出现的位置,然后对每个位置枚举子集统计在它后面的贡献即可 #include<cstdio> #include<cstring> #include<algorithm> using namespace std; ; ; long long a[N],dp[N],pos[N]; long long n,ans; int main() { scanf("%lld&qu…
CTSC 2017 滚粗记 结束好几天了一直没写. 明天就要去参加二轮省选了,填一下坑吧. 所以可能很多东西已经忘了 Day -2 [5.5 Fri] 周五晚上是其他学信竞的同学来机房的时间... 也就是说不用一个人怕黑啦 现在高一和高二混机房了 看到现在高一崇真1的几个人,想起了以前高一的时候,我们班也有5个人啊,真想再过一遍那段时光. 和灰哥写一道普及组难度题,压代码压到11行 灰哥开始看,感觉不知道比低到哪里去了,人物界面辣么丑,剧情设定辣么差. 看完SAO篇和ALO篇的第一感觉: "这也…
惨啊,弱菜选手只报上了CTSC,去不了APIO. day -1 晚上的时候,坐上了去帝都的卧铺. 由于第二天就是luogu月赛round1,还得在火车上赶工出题... 颓了好长时间,把题面写出来了,用的是之前的一个idea.感觉很累,就先睡了. 意料之中地没睡好,分别在1点.4点.7点三次醒来,最后一次是真的起床. day 0 吃了早饭就开始颓标程,发现非常好写.过了1h就下车了,坐帝都地铁来到了酒店.第一眼感觉:果然CCF(CC$)就是壕气.然后领狗牌,准备迎接一大波面基. 在电梯里碰到std…
小 R 和室友小 B 在寝室里玩游戏.他们一共玩了 $n$ 局游戏,每局游戏的结果要么是小 R 获胜,要么是小 B 获胜. 第 $1$ 局游戏小 R 获胜的概率是 $p_1$,小 B 获胜的概率是 $1-p_1$.除了第一局游戏之外,每一局游戏小 R 获胜的概率与上一局游戏小 R 是否获胜有关. 具体来说: 如果第 $i-1\ (1< i\le n)$ 局游戏小 R 获胜,那么第 $i$ 局游戏小 R 获胜的概率为 $p_i$,小 B 获胜的概率为 $1-p_i$. 如果第 $i-1\ (1<…
题目描述 Farmer John's cows like to play coin games so FJ has invented with a new two-player coin game called Xoinc for them. Initially a stack of N (5 <= N <= 2,000) coins sits on the ground; coin i from the top has integer value C_i (1 <= C_i <=…
luogu 1327 数列排序 题意 给定一个数列\(\{an\}\),这个数列满足\(ai≠aj(i≠j)\),现在要求你把这个数列从小到大排序,每次允许你交换其中任意一对数,请问最少需要几次交换? 思路 找循环节.答案即为 (循环节的长度\(-1\)) 对所有循环节求和. 如果只能交换相邻两个,那么就是求逆序对个数.因为交换相邻两个数字的效果是使逆序对个数\(-1\). Code #include <bits/stdc++.h> #define maxn 100010 using name…
P3745 [六省联考2017]期末考试 题目描述 有 \(n\) 位同学,每位同学都参加了全部的 \(m\) 门课程的期末考试,都在焦急的等待成绩的公布. 第 \(i\) 位同学希望在第 \(t_i\)​ 天或之前得知所有课程的成绩.如果在第 \(t_i\) 天,有至少一门课程的成绩没有公布,他就会等待最后公布成绩的课程公布成绩,每等待一天就会产生 \(C\) 不愉快度. 对于第 \(i\) 门课程,按照原本的计划,会在第 \(b_i\)​ 天公布成绩. 有如下两种操作可以调整公布成绩的时间:…
luogu loj 可以发现在最优策略中,每种操作最多只会做一次,并且操作的先后顺序并不会影响答案,所以考虑从后往前扫,碰到一个\(1\)就对这个位置\(i\)进行操作,这样的操作一定是最优策略.记最优策略步数为\(m\),如果\(m\le k\),那么答案就是\(n!*m\) 这里有80' 然后考虑每次操作对其他位置是否操作的影响,打表可以发现在每个位置操作不会影响其他位置上是否操作,大概可以这样想,如果操作的位置\(x\)不是当前位置\(i\)的倍数那根本不可能有影响,如果是当前位置的倍数,…
luogu 这里的组合数显然要用\(\text{lucas}\)定理来求,所以考虑\(\text{lucas}\)定理的本质,即把\(n,m\)分别拆分成\(p\)进制串\(\{a\}\{b\}\),然后\(\binom{n}{m}\mod p=\prod_i \binom{a_i}{b_i}\mod p\) 这题里\(p=2\),那么最后的\(\binom{n}{m}\)要为\(1\),当且仅当\(m\)的二进制串每一位\(\le n\)二进制串的对应位,这相当于\(n\ \&\)(按位与)\…