2017多校Round7(hdu6120~hdu6132)
补题进度:9/13
1001
待填坑
1002(数学推导)
题意
有一个按顺序的n个点的k叉树,问每个点子树个数的异或和是多少(n,k<=1e18)
分析
可以先求出最大的d,满足d以上都是满K叉树,最后一层是一些零散的点
然后枚举每一层,每一层的点分为三种,一种是最下面的孩子深度是d+1,一种是部分孩子的深度是d+1,一种是最下面孩子深度都是d,分别统计答案
注意特判k=1的时候,这个时候等价于求1^2^3^4^5^6....^n的值
我们可以把四个四个放在一组,如果k是一个偶数,那么k^(k+1)=1,(k+2)^(k+3)=1,所以k^(k+1)^(k+2)^(k+3)=1^1=0
所以1异或到n的值是和n%4的值有关
1003(神奇套路)
题意
有一个n行m列的棋盘,最初每个位置是指定的红色或蓝色或白色。你要将白色的位置染成红色或蓝色,使得对于任意一个长宽均为偶数的连续子棋盘,其中红色和蓝色的位置数相等。(1<=m,n<=1000)
分析
题解给出了很神奇的套路
首先“任意一个长宽均为偶数的连续子棋盘”,我们只需要考虑边长为2的小棋盘,边长为4、6、8的这些都是若干个2*2的拼起来的
我们设红色是0,蓝色是1,对于棋盘上的(x,y),如果x+y是奇数并且该位置不是?,那么就把这一位置颜色反转
我们发现原来任意一个2*2的子棋盘合法等价于现在新的任意一个2*2的子棋盘对角线上的和相同
进一步发现这等价于:要么新棋盘的每一行上的数都各自相同,要么新棋盘的每一列上的数都各自相同
于是就可以计算答案了
具体实现的时候,我们可以记录每一行、每一列的颜色占用情况,如果发现同一行出现了两种固定颜色,那么说明每一行颜色各自相同这个是不可能的了;列的情况也是同理
最后计算结果就是2^自由行个数 + 2^自由列个数,但是要除去一些重复情况,如果固定颜色中只出现了一种,那么最终答案需要减去一;如果固定颜色两种都没出现,那么答案要减去二
1004
待填坑
1005(数学题)
题意
给定正整数a,求对于所有正整数b,a mod b有多少种可能的结果。1<=a<=1e9
分析
显然小于a/2的所有数c都可以作为结果,只需要取b=a-c,另外a本身也可以
所以答案就是(a-1)/2+2
1006(状压DP)
题意
求从不大于n的所有正整数中选出至少1个且至多k个使得乘积不包含平方因子的方案数(1<=n,k<=500)
分析
此套路出自于NOI2015寿司晚宴
我们可以把它看做一个背包问题,我们将500以内所有质因数都压缩成二进制位,然后就相当于有500个物品,取或者不取,取了的话要保证质因数集合每个位不能超过1
但是问题是500以内的素数有90多个,无法压缩成二进制位
我们可以将sqrt(500)以内的素数压缩成二进制位(8个),为什么这样呢?因为1~500里的所有数字,其大于sqrt(500)的质因数顶多只有一个
于是对于1~500以内所有素数我们都可以把它看做一个包,对于1~500内的所有无平方因子数x,我们都可以求出其最大质因数y,把x对于前8个素数的分解情况丢入背包y种,把这个作为背包y中的一个物品
特别的,如果2*3*5这种全部是由前8个素数乘积构成的数,那就丢到其本身的那个背包
现在问题就相当于是有若干个背包,每个背包里的物品我只能选一个(因为如果多选会造成该较大质因子重复),然后求前八个素数分解情况不冲突的方案数
很经典的分组背包了,dp[i][s][k]表示前i个包,目前前8个素数选择情况为s,选了k个数的方案数
第一维滚动掉即可
1007(网络流)
题意
有n个小朋友,标号为1到n,你要给每个小朋友至少1个且至多m个的糖果。小朋友们共提出k个要求,每个要求包括三个整数x,y,z表示x号小朋友得到的糖果数减去y号小朋友得到的糖果数,结果应当不大于z。如果你给i号小朋友j颗糖果,他会获得w(i,j)的满意度,你需要最大化所有小朋友的满意度和。1<=n,m<=50,1<=k<=150,1<=w(i,j)<=1000
分析
来自题解的建图方法。
容易想到拆点,用i.j这点表示给第i个孩子至少j块糖,当这个点属于S集合时所代表条件成立。然后i.j->i.j+1连1000-wi,j,i.m向T连1000-wi,m,S向i.1连inf。如果存在ax-ay>=z,x.k->y.k+z连inf。跑最小割,再用n*1000减掉答案。
1008(计算几何)
题意
平面直角坐标系上有n个整点,第i个点有一个点权val[i],坐标是(xi,yi),其中不存在任意两点连成的直线经过原点。这些整点两两之间连有一条线段,线段的权值为其两端点的权值之积。你需要作一条过原点而不过任意一个给定整点的直线,使得和这条直线相交的线段的权值和最大。1<=n<=5e4,1<=val<=10^4,|xi|,|yi|<=1e9
分析
很容易想到极角排序,答案的统计就是直线两边点集权值和的乘积,所以O(n)扫一圈就可以了
注意的一点是直线从-π到π的过程中,直线的另一边可能从第二象限跳到第三象限,所以提前将前n个点接到第n个点后面,极角+2π
1009(二次剩余)
队友补了,不管了
1010(找规律)
题意
有一个长度为n的整数序列an,对其做m次前缀异或和,求最终的序列(1<=n<=2e5,1<=m<=1e9)
分析
dp[i][j]=dp[i-1][j]^dp[i][j-1]=dp[i-2][j]^dp[i-1][j-1]^dp[i-1][j-1]^dp[i][j-2]=dp[i-2][j]^dp[i][j-2]
进一步归纳可以得到dp[i][j]=dp[i-2^k][j]^dp[i][j-2^k]
这只需要从1~m倍增就行了
时间复杂度O(nlogm)
1011(模拟)
略,根据题意的构造方式模拟即可
1012
待填坑
1013
待填坑
2017多校Round7(hdu6120~hdu6132)的更多相关文章
- 2017 多校5 hdu 6093 Rikka with Number
2017 多校5 Rikka with Number(数学 + 数位dp) 题意: 统计\([L,R]\)内 有多少数字 满足在某个\(d(d>=2)\)进制下是\(d\)的全排列的 \(1 & ...
- 2017 多校5 Rikka with String
2017 多校5 Rikka with String(ac自动机+dp) 题意: Yuta has \(n\) \(01\) strings \(s_i\), and he wants to know ...
- 2017 多校4 Wavel Sequence
2017 多校4 Wavel Sequence 题意: Formally, he defines a sequence \(a_1,a_2,...,a_n\) as ''wavel'' if and ...
- 2017 多校4 Security Check
2017 多校4 Security Check 题意: 有\(A_i\)和\(B_i\)两个长度为\(n\)的队列过安检,当\(|A_i-B_j|>K\)的时候, \(A_i和B_j\)是可以同 ...
- 2017 多校3 hdu 6061 RXD and functions
2017 多校3 hdu 6061 RXD and functions(FFT) 题意: 给一个函数\(f(x)=\sum_{i=0}^{n}c_i \cdot x^{i}\) 求\(g(x) = f ...
- 2017 多校2 hdu 6053 TrickGCD
2017 多校2 hdu 6053 TrickGCD 题目: You are given an array \(A\) , and Zhu wants to know there are how ma ...
- 2017 多校1 I Curse Myself
2017 多校2 I Curse Myself(第k小生成树) 题目: 给一张带权无向连通图,该图的任意一条边最多只会经过一个简单环,定义\(V(k)为第k小生成树的权值和\),求出\(\sum_{k ...
- hdu6136[模拟+优先队列] 2017多校8
有点麻烦.. /*hdu6136[模拟+优先队列] 2017多校8*/ #include <bits/stdc++.h> using namespace std; typedef long ...
- hdu6134[莫比乌斯反演] 2017多校8
/*hdu6134[莫比乌斯反演] 2017多校8*/ #include <bits/stdc++.h> using namespace std; typedef long long LL ...
随机推荐
- 里特定律 - Little's Law
里特定律(Little's Law)源自排队理论,是IT系统性能建模中最广为人知的定律. 里特定律揭示了前置时间(Lead Time).在制品数量(Work In Progress, WIP)和吞吐率 ...
- hdu 5402 Travelling Salesman Problem (技巧,未写完)
题意:给一个n*m的矩阵,每个格子中有一个数字,每个格子仅可以走一次,问从(1,1)走到(n,m) 的路径点权之和. 思路: 想了挺久,就是有个问题不能短时间证明,所以不敢下手. 显然只要n和m其中一 ...
- Docker 启动时报错:iptables:No chain/target/match by the name
重新启动docker后,就好了. service docker restart
- Java数据结构和算法(二)--队列
上一篇文章写了栈的相关知识,而本文会讲一下队列 队列是一种特殊的线性表,在尾部插入(入队Enqueue),从头部删除(出队Dequeue),和栈的特性相反,存取数据特点是:FIFO Java中queu ...
- AspNetCore容器化(Docker)部署(二) —— 多容器通信
一.前言 着上一篇 AspNetCore容器化(Docker)部署(一) —— 入门,在单个容器helloworld的基础上引入nginx反向代理服务器组成多容器应用. 二.配置反向代理转接 配置转接 ...
- ES6 第五章 字符串的新增方法 具体参照 http://es6.ruanyifeng.com
1.FormCodePoint 对象方法 用于从 Unicode 码点返回对应字符,可以识别原来es5不能识别的大于0xFFFF的码点. String.fromCodePoint(0x20BB7) / ...
- Xcode导入第三方库
Xcode导入第三方库,例如TapkuLibrary iOS开源框架Tapku下载地址:https://github.com/devinross/tapkulibrary.git 1.创建你的工程项目 ...
- 18. PROFILING
18. PROFILING PROFILING表提供语句分析信息. 其内容对应于SHOW PROFILE和SHOW PROFILES语句生成的信息(参见"SHOW PROFILE语法&quo ...
- babel实践
现在的主流浏览器还没有完全兼容ES6的语法,如ie11就不支持箭头函数. 使用过es6的人都知道,es6更加简洁和强大,可是使用es6写出来的代码并不能得到所有主流js引擎的支持,针对这一点,一个解决 ...
- day23 01 类的命名空间
day23 01 类的命名空间 一.初识面向对象复习 定义类: class 函数:方法 动态属性 变量:类属性 静态属性 过程: (1)_init_方法:初始化:def _init_(self,参数 ...