2019.9.18 csp-s模拟测试46 反思总结
神志不清:
回去休息(x)继续考试(√)
非常爆炸的一次考试。看错题码完T1回去再看发现自己过于幼稚,T2读完题看着16mb的空间秒出正解然后逻辑出现致命失误100pts->0pts,T3看了一会题直接放弃,10pts最后有时间再说->没时间,下一个。
还有什么好说的呢,略略。
T1:Set
曾经学完鸽巢原理【抽屉原理】以后还想过怎么考这个知识点的问题,最后没想出个所以然,断定一定是看不出来考点的考法。然后我真没看出来…一开始还读错题。T2打了个自以为的正解以后看了一会儿T3翻回来检查这道题,推翻了重新想。
大约想了一个小时?对 非常睿智。之后整个转换了思路才终于想到DP。半小时紧急打个DP然后瞎调一通,居然有50pts。
最后考完听别人一说才恍然大悟,这不是背包吗…
正解则完全不一样,是上面所说的鸽巢原理。余数有一个性质,n的余数不超过n种。对于给出的数列取模做个前缀和,从S0到Sn一共有n+1种余数,那么一定存在余数相同的两个S,把这两个位置中间的一段输出,它们的和一定被n整除。
非常巧妙的一道题。
#include<iostream>
#include<cstdio>
using namespace std;
int n;
int s[],v[];
int main()
{
scanf("%d",&n);
v[]=;
for(int i=,x;i<=n;i++){
scanf("%d",&x);
s[i]=(s[i-]+x)%n;
if(!v[s[i]]&&s[i]!=)v[s[i]]=i;
else{
printf("%d\n",i-v[s[i]]);
for(int j=v[s[i]]+;j<=i;j++)printf("%d ",j);
return ;
}
}
printf("-1");
return ;
}
T2:Read
16mb,读入又很麻烦,显然是一边读入一边处理答案的类型。
看题发现要先求出众数,再加上边读入边处理,自然想到了摩尔投票法。摩尔投票法还是当时准备给大家讲平衡树的时候在一道题里用到过,我引给大家的算法……结果这次四个人里只有我wa了……
wa的原因是处理完众数以后,摩尔投票法剩下的那个次数我直接用来求答案了。实际上最后存下的那个“众数”不一定是真正的众数,有可能恰巧是剩下的数字,并不多于所有数的一半。应该再扫一遍看是否大于(n+1)/2,然后大于的话再减去合适的数量。(n+1)/2和之后的那个数量都可以列出式子来移项得到。
足以说明我当时多么睿智…虽然现在也好不到哪去。
#include<iostream>
#include<cstdio>
using namespace std;
long long X,Y;
int sum,cnt,m,k,count[],x[],y[],z[];
int main()
{
scanf("%d%d",&m,&k);
for(int i=;i<=m;i++)scanf("%d",&count[i]);
for(int i=;i<=m;i++)scanf("%d",&x[i]);
for(int i=;i<=m;i++)scanf("%d",&y[i]);
for(int i=;i<=m;i++)scanf("%d",&z[i]);
int N=,S=(<<k)-;
for(int i=;i<=m;i++){
X=x[i];
if(X==Y)cnt++;
else{
cnt--;
if(cnt<){
cnt=;
Y=X;
}
}
long long lst=x[i];
// printf("%d ",X);
for(int j=;j<count[i];j++){
lst=(lst*y[i]+z[i])&S;
X=lst;
if(X==Y)cnt++;
else{
cnt--;
if(cnt<){
cnt=;
Y=X;
}
}
// printf("%d ",X);
}
}
for(int i=;i<=m;i++){
N++;
X=x[i];
if(X==Y)sum++;
long long lst=x[i];
// printf("%d ",X);
for(int j=;j<count[i];j++){
lst=(lst*y[i]+z[i])&S;
N++;
X=lst;
if(X==Y)sum++;
// printf("%d ",X);
}
}
if(sum>(N+)/)printf("%d",sum*-N-);
// printf("\n");
else printf("");
return ;
}
T3:Race
看了一眼题,想了会儿,直接扔了。
最后看正解果然是我的思路盲区…
x2的实质:比当前选手排名高的人任取两个组成的有序数对的个数,数对中的两个数可以重复。
在2m天中同样的数对可能多次出现,那么可以考虑这个数对出现了多少次,进一步转化成每个数对于同一选手的贡献。
对于一位选手,因为所有人的能力值均不相同,其他人一定可以根据能力值二进制第一位和他不同的位数分成至多m组。可以用01trie数记录下所有能力值并存一个size,对于每个运动员都在树上查一次,记录下第一位和他不同的数的个数。每个与他不同的数,排名大于他的次数都是总次数的二分之一,那么一个有序数对就是四分之一即2m-2次*2【因为数对有序所以*2】。
#include<iostream>
#include<cstdio>
using namespace std;
int n,m;
long long ans;
const long long mod=;
int a[],tree[][],tot=,sum[][],f[];
void ins(int x){
int now=;
for(int i=m-;i>=;i--){
if(!tree[now][(x>>i)&])tree[now][(x>>i)&]=++tot;
sum[now][(x>>i)&]++;
now=tree[now][(x>>i)&];
}
}
void work(int x){
int now=;
for(int i=m-;i>=;i--){
f[i]=sum[now][((x>>i)&)^];
now=tree[now][(x>>i)&];
}
}
int main()
{
scanf("%d%d",&n,&m);
for(int i=;i<=n;i++){
scanf("%d",&a[i]);
ins(a[i]);
}
for(int i=;i<=n;i++){
work(a[i]);
long long num=;
for(int j=;j<m;j++){
for(int k=j;k<m;k++){
num=(num+(2ll*f[j]*f[k]%mod*(<<(m-))%mod))%mod;
}
}
ans^=num;
}
printf("%lld",ans);
return ;
}
马上考试,祝大家rp++。
2019.9.18 csp-s模拟测试46 反思总结的更多相关文章
- 2019.8.3 [HZOI]NOIP模拟测试12 C. 分组
2019.8.3 [HZOI]NOIP模拟测试12 C. 分组 全场比赛题解:https://pan.baidu.com/s/1eSAMuXk 刚看这题觉得很难,于是数据点分治 k只有1和2两种,分别 ...
- 2019.8.3 [HZOI]NOIP模拟测试12 B. 数颜色
2019.8.3 [HZOI]NOIP模拟测试12 B. 数颜色 全场比赛题解:https://pan.baidu.com/s/1eSAMuXk 数据结构学傻的做法: 对每种颜色开动态开点线段树直接维 ...
- 2019.8.3 [HZOI]NOIP模拟测试12 A. 斐波那契(fibonacci)
2019.8.3 [HZOI]NOIP模拟测试12 A. 斐波那契(fibonacci) 全场比赛题解:https://pan.baidu.com/s/1eSAMuXk 找规律 找两个节点的lca,需 ...
- 2019.8.14 NOIP模拟测试21 反思总结
模拟测试20的还没改完先咕着 各种细节问题=错失190pts T1大约三分钟搞出了式子,迅速码完,T2写了一半的时候怕最后被卡评测滚去交了,然后右端点没有初始化为n…但是这样还有80pts,而我后来还 ...
- 2019.8.9 NOIP模拟测试15 反思总结
日常爆炸,考得一次比一次差XD 可能还是被身体拖慢了学习的进度吧,虽然按理来说没有影响.大家听的我也听过,大家学的我也没有缺勤多少次. 那么果然还是能力问题吗……? 虽然不愿意承认,但显然就是这样.对 ...
- 2019.8.1 NOIP模拟测试11 反思总结
延迟了一天来补一个反思总结 急匆匆赶回来考试,我们这边大家的状态都稍微有一点差,不过最后的成绩总体来看好像还不错XD 其实这次拿分的大都是暴力[?],除了某些专注于某道题的人以及远程爆踩我们的某学车神 ...
- 2019.8.3 NOIP模拟测试12 反思总结【P3938 斐波那契,P3939 数颜色,P3940 分组】
[题解在下面] 早上5:50,Gekoo同学来到机房并表态:“打暴力,打暴力就对了,打出来我就赢了.” 我:深以为然. (这是个伏笔) 据说hzoi的人还差两次考试[现在是一次了]就要重新分配机房,不 ...
- 2019.10.30 csp-s模拟测试94 反思总结
头一次做图巨的模拟题OWO 自从上一次听图巨讲课然后骗了小礼物以后一直对图巨印象挺好的233 T1: 对于XY取对数=Y*log(x) 对于Y!取对数=log(1*2*3*...*Y)=log1+lo ...
- 2019.9.28 csp-s模拟测试54 反思总结
咕咕咕的冲动如此强烈x T1x: 看完题目想了想,感觉把gcd不为1的强行放在一组,看作一个连通块,最后考虑连通块之间的组合方式就可以了. 然后维护这个连通块可以写并查集可以连边跑dfs怎么着都行… ...
随机推荐
- Python数据挖掘之决策树DTC数据分析及鸢尾数据集分析
Python数据挖掘之决策树DTC数据分析及鸢尾数据集分析 今天主要讲述的内容是关于决策树的知识,主要包括以下内容:1.分类及决策树算法介绍2.鸢尾花卉数据集介绍3.决策树实现鸢尾数据集分析.希望这篇 ...
- 简单数论 | Day3 部分题解
A - The Euler function 来源:HDU 2824 计算[a,b]区间内的整数的欧拉函数值,需要掌握单个欧拉函数和函数表的使用. #include <iostream> ...
- Django 连接MySQL的驱动设置
对于在Django 中连接MySQL 的驱动,有以下三种: 1) mysqlclient 2) mysql-connector-python 3) pymysql (建议:这个包已经有一年未升级了,本 ...
- 数据库连接客户端 dbeaver 程序包以及使用说明
dbeaver 是一个基于 Eclipse 的数据库客户端,支持几乎所有常见的数据库.分为商业版和社区版,社区版可以免费使用. 官网和 GitHub https://dbeaver.io/ https ...
- [Bzoj3696]化合物【暴力+树形Dp】
Online Judge:Bzoj3696 Label:暴力,树形Dp 题目描述 首长NOI惨跪,于是去念文化课了.现在,他面对一道化学题. 这题的来源是因为在一个奇怪的学校两个化竞党在玩一个奇怪的博 ...
- [转]WPF命令集 Command
在我们日常的应用程序操作中,经常要处理各种各样的命令和进行相关的事件处理,比如需要复制.粘贴文本框中的内容;上网查看网页时,可能需要返回上一网页查看相应内容;而当我们播放视频和多媒体时,我们可能要调节 ...
- [转]WPF 构建无外观(Lookless)控件
构建一个用户可以使用Template属性设置外观的WPF控件需要以下几步 1.继承自System.Windows.Controls.Control 2.设置DefaultStyleKeyPropert ...
- Ionic 日期时间插件
1.插件安装 日期插件 时间插件 备注: 具体 查看 https://github.com/rajeshwarpatlolla/ionic-datepicker https://github.c ...
- SpringCloud微服务实战三:Hystix的基本概念
1.说到隔离.熔断.降级,最出名的就是 Netflix 开源的 Hystrix 组件,Hystix官方对它描述为:Hystrix是一个延迟和容错库,旨在隔离远程系统.服务和第三方库,阻止级联故障,在复 ...
- KOA 学习(九)koa-static
配置静态资源的中间件 const Koa = require('koa'); const app = new Koa(); app.use(require('koa-static')(root, op ...