[比赛|考试]nowcoder NOIP提高组组第二场
160/300pts,rank16(100,30,30)
在自身找毛病,首先做题感觉还不不够认真,比如T3那个我一开始审出来了,然后tmd忘了。。。gg。。。T1AC没啥好赞美的,T2T3暴力没拿全啊。。。
sjzez大佬ztb180pts太强了相比我这个连树剖都不会写的就是个菜狗啊
吐槽T1动态题面,除了T1动态题面,另外两道题都很吼哇(反正我做不出来的题都很吼)(不过感觉ranklist前几页都是T1AC的)
下面是题解
T1.方差
一个长度为\(m\)的序列\(b[1\cdots m]\),我们定义它的方差为\(\displaystyle \frac 1 m \sum_{i=1}^m(b_i-\bar b)\)其中 \(b\)表示序列的平均值。
可以证明的是,如果序列元素均为整数,那么方差乘以\(m^2\)之后,得到的值一定是整数。
现在有一个长度为\(N\)的序列\(a[1\cdots N]\),对每个\(i = 1\)~$ N$,你需要计算,如果我们删除 \(a[i]\),剩下的 \(N-1\) 个元素的方差乘以 \((N-1)^2\) 的值。
下面我们令\(\displaystyle s=\sum_{i=1}^mb_i\)
推推式子,对于序列b的方差乘以\(m^2\),即
\(\displaystyle m \sum_{i=1}^m(b_i-\bar b)\\\displaystyle=m\sum_{i=1}^mb_i^2-2m\sum_{i=1}^mb_i\bar b+m\sum_{i=1}^m\bar b^2\\\displaystyle=m\sum_{i=1}^mb_i^2-2m\bar b\sum_{i=1}^mb_i+m\bar b^2\sum_{i=1}^m1\\\displaystyle=m\sum_{i=1}^mb_i^2-2s\sum_{i=1}^mb_i+m^2\bar b^2\\\displaystyle=m\sum_{i=1}^mb_i^2-2s^2+s^2\\\displaystyle=m\sum_{i=1}^mb_i^2-s^2\)
所以我们只需要处理所有数的平方和,所有数的和就行了。注意精度问题(开long long就够了,请看下面代码的注释)
#include <bits/stdc++.h>
using namespace std;
int a[100010], sqra[100010], n;
long long tot, sqrtot;
int main()
{
scanf("%d", &n);
for (int i = 1; i <= n; i++)
{
scanf("%d", &a[i]);//1e4
sqra[i] = a[i] * a[i];//1e8
tot += a[i];//1e9
sqrtot += sqra[i];//1e13
}
for (int i = 1; i <= n; i++)
{
long long fuck1 = sqrtot - sqra[i];//1e13
long long fuck2 = tot - a[i];//1e9
printf("%lld%c", (n - 1) * fuck1 - fuck2 * fuck2, i == n ? '\n' : ' ');//1e18
}
return 0;
}
T2.分糖果
N 个小朋友围成一圈,你有无穷个糖果,想把其中一些分给他们。
从某个小朋友开始,我们顺时针给他们标号为 1 ~ N。第 i 个小朋友可以得到至多 a[i],至少 1 个糖果。
问,有多少种分配方案使得每一对相邻的小朋友拿到的糖果数不同。答案对 10^9 + 7 取模。
对全部的测试数据,n <= 10^6, a_i <= 10^9
- 10 分的数据,n <= 4
- 10 分的数据,n <= 100, a_i <= 20
- 20 分的数据,n <= 100, a_i <= 100
- 10 分的数据,n <= 10^5, a_i 全部相等
- 30 分的数据,n <= 10^5, a_i 为随机生成
- 20 分的数据,n <= 10^6.
我的预计是骗前50分,最后拿到30分(懒得去找哪里出锅了)。对于\(n\le100,a_i\le100\)的情况,可以直接暴力dp。\(a_i\)全部相等参见pj组T3,打递推or通项。
正解要搞搞rc原理什么的,反正我不透彻,不放代码了
T3.集合划分
visit_world 得到了 {1, 2, ... , n} 的 (2^n - 1) 个非空子集,他计划把这些集合分给小 S 和小 T,每个子集恰好给其中一个人。
分配规则是这样的:
\1. 若存在两个集合属于同一个人,那么这两个集合的并也要属于那个人
\2. 有 m 个集合是小 S 特别喜欢的,你要把这些集合全部给小 S
\3. 小 S 拿到了恰好 k 个集合。
请给出一种方案,或者说明无解。
有30分部分分是m=0的,我写了个假的贪心(太tm假了)当时我都没看出来,直到群里某人提醒。。。
这题特别难,全场1人AC。。。
m=0时候是一个二进制拆分构造什么的
m>0的时候反正各种xjb推不会
以后遇到这种题有两种思路一个是暴力一个是贪心
贪心不对我tm模拟退火,遗传啊
正解不想再透彻一遍了············
作为bruteforce选手,希望下一次tg组赛能拿稳了暴力分,Wannafly比赛好像就是让我掉rating的。。。不过计rating的好像除了tg就Wannafly了
[比赛|考试]nowcoder NOIP提高组组第二场的更多相关文章
- NOI.AC NOIP模拟赛 第二场 补记
NOI.AC NOIP模拟赛 第二场 补记 palindrome 题目大意: 同[CEOI2017]Palindromic Partitions string 同[TC11326]Impossible ...
- [比赛|考试]nowcoder NOIPpj组第二场
nowcoder NOIPpj组第二场 370pts/400pts(100,100,100,70) rank3 给自己的反思:前3题都A了,T4O(N^2)不会就是不会(没准是我懒得推了),DP了70 ...
- 牛客nowcoder Noip提高组第四场
https://www.nowcoder.com/acm/contest/175#question A-动态点分治 Description CJK 是一个喜欢数据结构的同学.一天他看到 BZOJ 40 ...
- [比赛|考试]nowcoder 小白月赛7
牛客小白月赛7 比赛地址.本次比赛我切了8道(ACM赛制),rank(20). 反思:刚入手ACM赛,光追求刺激了,没有总结ACM赛制的经验.是应该多提交>..还是少提交...小白赛还有两道不会 ...
- 牛客网提高组第二场---solution
T1 方差 根据题目要求将式子先写出来注意下面式子中的 $n$ 全部都是 $n-1$$$\begin{aligned}ans&=n^2\times \frac{1}{n}\times \sum ...
- 牛客网NOIP赛前集训营-普及组(第二场)和 牛客网NOIP赛前集训营-提高组(第二场)解题报告
目录 牛客网NOIP赛前集训营-普及组(第二场) A 你好诶加币 B 最后一次 C 选择颜色 D 合法括号序列 牛客网NOIP赛前集训营-提高组(第二场) A 方差 B 分糖果 C 集合划分 牛客网N ...
- 本周进步要点20161023(含李笑来第二场live笔记要点)
本周主要忙于去武汉参加iDOF2016智能数字油田会议,会上做了题为“油田SOA及云平台的系统思考与实践”的报告,为了准备这篇报告,用到了一些以前学过的知识,具体内容见“参加iDOF2016会议的收获 ...
- NOIP提高组2004 合并果子题解
NOIP提高组2004 合并果子题解 描述:在一个果园里,多多已经将所有的果子打了下来,而且按果子的不同种类分成了不同的堆.多多决定把所有的果子合成一堆. 每一次合并,多多可以把两堆果子合并到一起,消 ...
- 2018牛客暑期ACM多校训练营第二场(有坑未填)
第二场终于等来学弟 开始(被队友带飞)的开心(被虐)多校之旅 A run A题是一个递推(dp?)+前缀和 因为看数据量比较大 就直接上前缀和了 一个比较简单的递推 没有太多难点 签到题 需要注意 ...
随机推荐
- springmvc----demo---login---bai
web.xml配置: <?xml version="1.0" encoding="UTF-8"?> <web-app version=&quo ...
- redis学习二 排序
文章转载自:http://www.cnblogs.com/redcreen/archive/2011/02/15/1955226.html redis支持对list,set和sorted set元素的 ...
- Linux 命令及获取帮助 目录文件浏览,管理和维护
开启Linux操作系统,要求以root用户登录GNOME图形界面,语言支持选择为汉语 使用快捷键切换到虚拟终端2,使用普通用户身份登录,查看系统提示符 $ 使用命令退出虚拟终端2上登录的用户 exit ...
- leetcode874
这道题直接按照题意来解,建立坐标系和移动方案,思路是比较简单的.只是需要注意需要使用set来判断是否遇到障碍,否则会超时. int robotSim(vector<int>& co ...
- Struts2+Hibernate+Spring 整合示例
转自:https://blog.csdn.net/tkd03072010/article/details/7468769 Struts2+Hibernate+Spring 整合示例 Spring整合S ...
- 用命令查看端口占用情况 netstat -ano
查看所有端口 netstat -ano 可以看到进程ID 参考某个具体端口,第五列就是PID进程ID了. netstat -aon|findstr "80"
- 部署和调优 3.3 dns安装配置-3
只有一台DNS服务器是不保险的,现在给他配置个从服务器. 在另外一台虚拟机上安装配置DNS服务器.先查看虚拟机ip为:192.168.1.111 ifconfig 给从安装bind和dig命令 yum ...
- 使用mui框架后a标签无法跳转
由于最近工作项目上使用到前台mui框架,笔者在将H5转换为jsp时,遇见各种各样问题,原因归结为对mui框架不熟悉,今天就遇见一个特别奇怪的问题,界面中超链接<a>标签无法跳转,笔者试着添 ...
- VS2015 MSVC编译FFMPEG
1.下载安装msys2 http://www.msys2.org/下载msys2 下载安装完成后,在msys2的shell中安装编译FFMPEG必要的命令行工具 pacman -S make gcc ...
- 下载Django
Django下载教程以及学习教程https://code.ziqiangxuetang.com/django/django-queryset-api.html 或者直接搜索自强学堂