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提高组组第二场的更多相关文章

  1. NOI.AC NOIP模拟赛 第二场 补记

    NOI.AC NOIP模拟赛 第二场 补记 palindrome 题目大意: 同[CEOI2017]Palindromic Partitions string 同[TC11326]Impossible ...

  2. [比赛|考试]nowcoder NOIPpj组第二场

    nowcoder NOIPpj组第二场 370pts/400pts(100,100,100,70) rank3 给自己的反思:前3题都A了,T4O(N^2)不会就是不会(没准是我懒得推了),DP了70 ...

  3. 牛客nowcoder Noip提高组第四场

    https://www.nowcoder.com/acm/contest/175#question A-动态点分治 Description CJK 是一个喜欢数据结构的同学.一天他看到 BZOJ 40 ...

  4. [比赛|考试]nowcoder 小白月赛7

    牛客小白月赛7 比赛地址.本次比赛我切了8道(ACM赛制),rank(20). 反思:刚入手ACM赛,光追求刺激了,没有总结ACM赛制的经验.是应该多提交>..还是少提交...小白赛还有两道不会 ...

  5. 牛客网提高组第二场---solution

    T1 方差 根据题目要求将式子先写出来注意下面式子中的 $n$ 全部都是 $n-1$$$\begin{aligned}ans&=n^2\times \frac{1}{n}\times \sum ...

  6. 牛客网NOIP赛前集训营-普及组(第二场)和 牛客网NOIP赛前集训营-提高组(第二场)解题报告

    目录 牛客网NOIP赛前集训营-普及组(第二场) A 你好诶加币 B 最后一次 C 选择颜色 D 合法括号序列 牛客网NOIP赛前集训营-提高组(第二场) A 方差 B 分糖果 C 集合划分 牛客网N ...

  7. 本周进步要点20161023(含李笑来第二场live笔记要点)

    本周主要忙于去武汉参加iDOF2016智能数字油田会议,会上做了题为“油田SOA及云平台的系统思考与实践”的报告,为了准备这篇报告,用到了一些以前学过的知识,具体内容见“参加iDOF2016会议的收获 ...

  8. NOIP提高组2004 合并果子题解

    NOIP提高组2004 合并果子题解 描述:在一个果园里,多多已经将所有的果子打了下来,而且按果子的不同种类分成了不同的堆.多多决定把所有的果子合成一堆. 每一次合并,多多可以把两堆果子合并到一起,消 ...

  9. 2018牛客暑期ACM多校训练营第二场(有坑未填)

    第二场终于等来学弟 开始(被队友带飞)的开心(被虐)多校之旅 A   run A题是一个递推(dp?)+前缀和 因为看数据量比较大 就直接上前缀和了 一个比较简单的递推 没有太多难点 签到题 需要注意 ...

随机推荐

  1. 对runtime的总结:让你会用Runtime

    导语Runtime,简称运行时,就是系统在运行的时候的一些机制,其中最主要的是消息机制,是一套底层的纯C语言的API,我们平时所编写的OC代码,在程序的运行过程中都转成了runtime的代码,平时调方 ...

  2. 开发环境入门 linux基础(部分)虚拟内存,rpm和yum安装

    虚拟内存,rpm和yum安装 文本中查找 /内容 替换:扩展模式下(:)%s /替换目标/要替换的文件/ (只替换第一个)(后边加g全部替换) :set u添加行号 raid  lvm逻辑卷 df - ...

  3. 2016.9.9《Oracle查询优化改写技巧与案例》电子工业出版社一书中的技巧

    1.coalesce (c1,c2,c3,c4,...) 类似于nvl但可以从多个表达式中返回第一个不是null的值 2.要在where条件中引用列的别名,可以再嵌套一层查询 select * fro ...

  4. The R Project for Statistical Computing

    [Home] Download CRAN R Project About R Contributors What’s New? Mailing Lists Bug Tracking Conferenc ...

  5. elastic(7)bulk

    转自:https://www.cnblogs.com/xing901022/p/5339419.html bulk批量导入 批量导入可以合并多个操作,比如index,delete,update,cre ...

  6. 一个servlet处理多个请求(使用Method的反射机制)

    方法一 可以通过在请求的时候加上参数,然后在servlet中获取请求的参数,再去调用对应的方法.达到一个servlet处理多个请求的目的 test.jsp: <%@ page language= ...

  7. Android 自定义带回调的Dialog 及EditText相关

      import android.app.Activity; import android.content.Context; import android.text.Editable; import ...

  8. maven 配置说明

    1.坐标 1.1 每一jar文件都有一个唯一坐标.通过坐标可以精确确定是哪个jar 1.2 坐标组成 1.2.1 Group ID : 公司名.公司网址倒写 1.2.2 Artifact ID : 项 ...

  9. HTML布局,插件的调用方法

  10. 企业级搜索引擎Solr 第三章 索引数据(Indexing Data)

    虽然本书中假设你要建索引的内容都是有着良好结构的,比如数据库表,XML文件,CSV,但在现实中我们要保存很混乱的数据,或是二进制文件,如PDF,Microsoft Office,甚至是图片和音乐文件. ...