博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【HHHOJ】ZJOI2019模拟赛(十二)03.03 解题报告
阅读量:5259 次
发布时间:2019-06-14

本文共 2009 字,大约阅读时间需要 6 分钟。

得分: \(0+77+20=97\)

排名: \(Rank\ 5\)

\(Rating\)\(+46\)

\(T1\):【HHHOJ178】依神()

这套题目中的唯一一道传统题。

比赛时连暴力都不会写,赛后也不会订正。。。

\(T2\):【HHHOJ179】紫苑()

一道提答题,原题详见此题:。

这里仅给出造数据程序以及答案:

\(Subtask1\)

手造即可。

\(Subtask2\)

#include
#define N 1990//数的总数#define M 1469//混进数的位置using namespace std;int main(){ freopen("Shion2.out","w",stdout); register int i;cout<
<

\(Subtask3\)

#include
#define N 1984using namespace std;int p[N+5],ans[N+5];void DivideAndSolve(int l,int r,int v)//模拟快排来求答案{ int x=l+r>>1,i=l,j=x;!ans[p[x]]&&(ans[p[x]]=++v);//使中间的数最小 p[i]^=p[j]^=p[i]^=p[j],++i

\(Subtask4\)

#include
#define N 1012//数的总数#define M 30//序列中数的最大值using namespace std;int main(){ freopen("Shion4.out","w",stdout); register int i,j;cout<
<

\(Subtask5\)

#include
#define N 1004using namespace std;int ans[N+5];void DivideAndSolve(int l,int r,int v)//二分构造序列{ if(l>r) return;//当左边界大于右边界时,退出 int mid=l+r>>1;ans[mid]=v,//给中间的数赋值 DivideAndSolve(l,mid-1,v+r-mid+1),//处理左边 DivideAndSolve(mid+1,r,v+1);//处理右边}int main(){ freopen("Shion5.out","w",stdout); register int i;cout<
<

\(Subtask6\)

#include
#define N 4096#define uint unsigned int#define swap(x,y) (x^=y^=x^=y)using namespace std;int a[N+5];int main(){ freopen("Shion6.out","w",stdout); register int i;register uint seed; for(i=1;i<=N;++i) a[i]=i;for(i=N;i;--i) swap(a[i],a[(i+2048)%N+1]);//倒序处理,构造出原数列 for(i=1;i<=N;++i) a[i]>a[N]&&(a[i]+=1000000);//将已经构造出的序列中大于a[n]的数全部加上一个很大的数,这样就能使得相对大小不变 for(seed=2166136261,i=1;i^N;++i) seed=(seed*16777619)^a[i];//求出前n-1个数使seed得到的值 for(i=4092;i<=1004093;++i) if(((seed*16777619)^i)%N==2048) {a[N]=i;break;}//枚举一个合适的a[n]使得seed能够恰好等于2048 for(cout<
<
<=N;++i) cout<
<

答案

\(T3\):【HHHOJ180】今宵是飘逸的利己主义者()

一道通信题,比赛时只会写暴力,连\(0\le k<1024\)的良心部分分都忘写了。

这题是一道神仙哈希题,尚未订正完。

转载于:https://www.cnblogs.com/chenxiaoran666/p/HHHOJ_ZJOI2019_12.html

你可能感兴趣的文章
Google 多源码管理工具 gclient
查看>>
Python Day72 对django的基础复习
查看>>
类的继承 设计模式
查看>>
Delphi匿名方法(一):初识
查看>>
工作流系统概述
查看>>
swift学习笔记4——扩展、协议
查看>>
Android NDK(C++) 双进程守护
查看>>
提高速度 history 的利用
查看>>
●POJ 1509 Glass Beads
查看>>
docker 基本命令
查看>>
LTrim、RTrim 和 Trim 函数
查看>>
宝塔Linux面板新手安装教程【转】
查看>>
HBH_IOS开发之界面转换
查看>>
一文搞懂Raft算法
查看>>
sql中检查时间是否重叠
查看>>
【MVC】ASP.Net MVC 4项目升级MVC 5的方法
查看>>
做人、做事,做架构师——架构师能力模型解析
查看>>
Dinic二分图匹配 || Luogu P3386
查看>>
DNS正向解析
查看>>
通过 BitNami 轻松安装 Redmine
查看>>