CodeForcs 1169B Good Triple】的更多相关文章

CodeForcs 1169B Good Triple 题目链接:http://codeforces.com/problemset/problem/1169/B 题目描述:给你m对不超过n的数字,找出一对x,y,满足在这m对数中至少有一个数字等于x或者y. 思路:假设第一对为(a,b),若x,y存在,则其中之一一定是a,b中的一个数,那么如果存在(c,d),使得与a,b都不相同,那么x,y中的另一个数必在c,d中,所以x,y可能是(a,c),(a,d),(b,c),(b,d),如果不存在(c,d…
Triple Nim Time Limit: 2000MS Memory limit: 65536K 题目描述 Alice and Bob are always playing all kinds of Nim games and Alice always goes first. Here is the rule of Nim game: There are some distinct heaps of stones. On each turn, two players should remov…
Triple Time Limit: 5000/3000 MS (Java/Others)    Memory Limit: 125536/65536 K (Java/Others) Total Submission(s): 1365    Accepted Submission(s): 549 Problem Description Given many different integers, find out the number of triples (a, b, c) which sat…
Triple Time Limit: 12000/6000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 388    Accepted Submission(s): 148 Problem Description Given the finite multi-set A of n pairs of integers, an another finite multi-set B …
C - Triple Flips 思路: 小范围暴力 大范围递归构造 构造方法: solve(l, r) 表示使l 到 r 区间全变为0的方法 为了使反转次数小于等于n/3 + 12 我们只需要保证每次反转后区间长度减少值的期望为3就可以了 如果a[l] == 0, l++ 如果a[r] == 0, r-- 如果a[l] == 1 && a[l+1] == 1 && a[l+2] == 1, 反转这三个就可以啦, l += 3 如果a[l] == 1 &&…
[BZOJ3771]Triple(生成函数,多项式运算) 题面 有\(n\)个价值\(w\)不同的物品 可以任意选择\(1,2,3\)个组合在一起 输出能够组成的所有价值以及方案数. \(n,w<=40000\) 题解 对于每一个出现的价值,就在对应的位置上\(+1\) 于是我们就有了一个生成函数\(A(x)\),代表着出现了一次的价值. 设\(B(x),C(x)\)分别代表着两个物品组成的价值和三个物品组成的价值,我们不难得到以下式子. \[B(x)=A(x)*A(x)-D(x),C(x)=A…
Given a list of N integers A1, A2, A3,...AN, there's a famous problem to count the number of inversions in it. An inversion is defined as a pair of indices i < j such that Ai > Aj. Now we have a new challenging problem. You are supposed to count the…
3771: Triple Time Limit: 20 Sec  Memory Limit: 64 MBSubmit: 547  Solved: 307 Description 我们讲一个悲伤的故事. 从前有一个贫穷的樵夫在河边砍柴. 这时候河里出现了一个水神,夺过了他的斧头,说: “这把斧头,是不是你的?” 樵夫一看:“是啊是啊!” 水神把斧头扔在一边,又拿起一个东西问: “这把斧头,是不是你的?” 樵夫看不清楚,但又怕真的是自己的斧头,只好又答:“是啊是啊!” 水神又把手上的东西扔在一边,拿…
此题是 2018 年 ICPC Asia Beijing Regional Contest 的 C 题. 题目大意 求斜边长度不超过 $n$($ n \le 10^9$) 的勾股数的数量.不计两直角边的顺序,即勾股数 (a, b, c) 和 (b, a, c) 视作同一组. 分析 这是一道颇为经典的计数问题. 请先阅读维基百科上的 Pythagorean triple 条目. 设斜边为 $n$ 的勾股数有 $f(n)$ 个.又设斜边为 $n$ 的本原勾股数有 $g(n)$ 个.于是有 $ f(n…
Triple Time Limit: 20 Sec  Memory Limit: 64 MBSubmit: 847  Solved: 482[Submit][Status][Discuss] Description 我们讲一个悲伤的故事. 从前有一个贫穷的樵夫在河边砍柴. 这时候河里出现了一个水神,夺过了他的斧头,说: “这把斧头,是不是你的?” 樵夫一看:“是啊是啊!” 水神把斧头扔在一边,又拿起一个东西问: “这把斧头,是不是你的?” 樵夫看不清楚,但又怕真的是自己的斧头,只好又答:“是啊是…
3771: Triple 链接 题意 n个斧头,每个斧头的价值都不同(开始时没注意到),可以取1个,2个,3个斧头组成不同的价值,求每种价值有多少种组成方案(顺序不同算一种) 分析: 生成函数 + 容斥原理 + FFT. 首先对于只取一个的话,那么生成函数就是$A = (x^0 + x^{w_1} + x^{w_2} + x^{w_3}+...+x^{w_n})$(指数为价值,系数为方案数) 那么朴素的求解就是$ans = A+A^2+A^3$ 但是顺序不同算一种,所以每一项都除以n!,$ans…
[BZOJ3771]Triple Description 我们讲一个悲伤的故事. 从前有一个贫穷的樵夫在河边砍柴. 这时候河里出现了一个水神,夺过了他的斧头,说: “这把斧头,是不是你的?” 樵夫一看:“是啊是啊!” 水神把斧头扔在一边,又拿起一个东西问: “这把斧头,是不是你的?” 樵夫看不清楚,但又怕真的是自己的斧头,只好又答:“是啊是啊!” 水神又把手上的东西扔在一边,拿起第三个东西问: “这把斧头,是不是你的?” 樵夫还是看不清楚,但是他觉得再这样下去他就没法砍柴了. 于是他又一次答:“…
You're given a sequence s of N distinct integers.Consider all the possible sums of three integers from the sequence at three different indicies.For each obtainable sum output the number of different triples of indicies that generate it.Constraints:N…
题意: cas<=100 n<=10^5 思路:与两个数的没什么区别 F(d)=(n div d)*(n div d-1)*(n div d-2) div 6 再加上喜闻乐见的下底函数分块 又是一个不能测P的萎靡题库…… ; ..max]of longint; sum:..max]of int64; n,m,v,pos,i,j,t,cas:longint; ans,x:int64; begin assign(input,'triple.in'); reset(input); assign(ou…
3DES(或称为Triple DES)是三重数据加密算法(TDEA,Triple Data Encryption Algorithm)块密码的通称.它相当于是对每个数据块应用三次DES加密算法.由于计算机运算能力的增强,原版DES密码的密钥长度变得容易被暴力破解:3DES即是设计用来提供一种相对简单的方法,即通过增加DES的密钥长度来避免类似的攻击,而不是设计一种全新的块密码算法. 3DES又称Triple DES,是DES加密算法的一种模式,它使用3条56位的密钥对 3DES 数据进行三次加密…
[BZOJ 3771] Triple(FFT+生成函数) 题面 给出 n个物品,价值为别为\(w_i\)且各不相同,现在可以取1个.2个或3个,问每种价值和有几种情况? 分析 这种计数问题容易想到生成函数. 设生成函数\(A(x)=\sum_{i=1}^{n} x^{w_i}\),指数为价值,系数为选的方案数.A表示每种物品取1个的方案数.同理,我们可以写出每种物品取2个和3个的生成函数. \(B(x)=\sum_{i=1}^{n} x^{2w_i}\) \(C(x)=\sum_{i=1}^{n…
2016年省赛 G Triple Nimnim游戏,要求开始局面为先手必败,也就是异或和为0.如果n为奇数,二进制下最后一位只有两种可能1,1,1和1,0,0,显然异或和为1,所以方案数为0如果n为偶数,举个例子,14,二进制为1110,我们按位来拆1110==1000+100+101000=100+100+000也就是上一位的1可以拆成下一位的两个1和一个0,对于n在二进制下的每一个1都可以拆成3种情况(0都有三个位置可以选),所以为3^x,又因为如果每次0都选在同一个位置,就会出现0的情况,…
The Preliminary Contest for ICPC Asia Shanghai 2019 C Triple(FFT+暴力) 传送门:https://nanti.jisuanke.com/t/41400 题意: 给你三个数组a,b,c,要你求有多少个三元组(i,j,k),使得 \[ \begin{array}{l}{\left|A_{i}-B_{j}\right| \leq C_{k}, \text { and }} \\ {\left|B_{j}-C_{k}\right| \leq…
public Triple<Long, Long, Double> getCarRunSummary(String did, Date startDate, Date endDate) { Map<String, Object> map = kuduRepository.getCarRunSummary(did, startDate, endDate); if (map != null) { Long mileage = map.get("total_mileage&qu…
来源:Atcoder ARC 136 B - Triple Shift (atcoder.jp) 题解:这道题我们不可能去硬模拟(大多数这种题都不能这样去模拟的),然后我们就要去发现特性, 发现把 ai ai+1 ai+2 变成 ai+2 ai+1 ai 的过程,并不改变这个数组中逆序对的奇偶性.   考虑把 a1...an-2 换到指定位置,那么 an-1 与 an 的相对位置将由逆序对的奇偶性直接决定.因此我们只需要判断a数组与b数组的逆序对奇偶性是否相同.  (我们可以发现,很多这种位置需…
Description 问所有三/二/一元组可能形成的组合. Sol FFT. 利用生成函数直接FFT一下,然后就是计算,计算的时候简单的容斥一下. 任意三个-3*两个相同的+2*全部相同的+任意两个-两个相同的+任意一个. Code /************************************************************** Problem: 3771 User: BeiYu Language: C++ Result: Accepted Time:1760 m…
A child is running up a staircase with n steps and can hop either 1 step, 2 steps, or 3 steps at a time. Implement a method to count how many possible ways the child can run up the stairs. public static int getPossibleWays(final int n) { int[] memo =…
额我不是来发题解的,只是非常郁闷= =,这题的答案最大是1.2e9/6左右,所以用ntt的话要在模意义下除以6,不能最后除,否则刚好爆掉= = #include<bits/stdc++.h> #define N 131072 using namespace std; const int p=998244353; int up(int s,int t){ return 1ll*s*t%p; } int wop(int u,int k){ for(int s=1;;u=up(u,u)){ if(k…
题目 Source http://www.spoj.com/problems/TSUM/ Description You're given a sequence s of N distinct integers.Consider all the possible sums of three integers from the sequence at three different indicies.For each obtainable sum output the number of diff…
http://www.lydsy.com/JudgeOnline/problem.php?id=3771 题意:n个带价值互不相同的物品,每次可以取1.2.3个物品,问能得到的所有的价值和这个价值的方案数(n不明(无意义= =),价值<=40000) #include <bits/stdc++.h> using namespace std; const int N=200005; int bit[N]; const double PI=acos(-1); struct cp { doub…
[bzoj3771][xsy1728] 题意 求\(\sum_{i}[a_i=S]+\sum_{i<j}[a_i+a_j=S]+\sum_{i<j<k}[a_i+a_j+a_k=S]\) \(n\leq 30000\),\(a_i\leq 40000\) 分析 容斥+FFT. 主要展现一些通过翻阅众多题解,得到的一些启示. ①把IDFT的除法放在内部. void FFT(CP a[S],int len,int kd) { //... if (kd==-1) { rep(i,0,len-1…
分析:令f(x)为1到n的gcd(i,j)==x的个数 F(x)为1到n的x|gcd(i,j)的对数 显然F(n)=∑n|df(d) 然后由莫比乌斯反演可得f(n)=∑n|d μ(d/n)*F(d) 由题目显然可得,令cnt=n/x,当cnt<3时,F(x)为0,cnt>=3,F(x)=cnt*(cnt-1)*(cnt-2)/6 然后就是暴力,复杂度,O(T*n) 注:题目链接https://icpc.njust.edu.cn/Problem/Local/1923/ #include <…
Description Given the finite multi-set \(A\) of \(n\) pairs of integers, an another finite multi-set \(B\) of \(m\) triples of integers, we define the product of \(A\) and \(B\) as a multi-set \[C=A∗B=\lbrace \langle a,c,d \rangle \mid \langle a,b \r…
题目链接 首先忽略 i < j < k这个条件.那么我们构造多项式$$A(x) = \sum_{1现在我们考虑容斥:1. $ (\sum_{}x)^3 = \sum_{}x^3 + 3\sum_{}x^2 y + 6\sum_{}xyz $ 2. $ (\sum_{}x^2)(\sum_{}x) = \sum_{}x^3 + \sum_{}x^2 y $3. $ (\sum_{}x)^3 = \sum_{}x^3 $由上面三个式子 我们可以推导出$ \sum_{}xyz = \frac {(\…
题意:n个物品,可以用1/2/3个不同的物品组成不同的价值,求每种价值有多少种方案(顺序不同算一种) [生成函数]: 构造这么一个多项式函数g(x),使得n次项系数为a[n]. 普通型生成函数用于解决多重集的组合问题 生成函数的x无实际意义 通常可以化为一个简单的式子 组合数的生成函数 A(x)=(1+x)^n  C(n,k)=a[k] 可以这么想,一次要么选择1要么选择x,选择x系数就会+1 生成函数系数为方案数,次数为价值 A(x) 选一个 B(x) A每项平方 选两个 C(x) A每项三次…