连续不知道多少场了,都是一场10名以内一场20以外。。。波动极大。。。还极有规律。。。

拿到这套题,看到T1大模拟无话可说。

然后考场上我觉得T2很简单。。。。然后就码了两个半小时。

T3数据水了暴力70。。。

T1:砖块

大模拟。其实也不大。。。

记录上下左右前后边界然后滚就是了

闲得慌打hash_map

 #include<cstdio>
#include<iostream>
using namespace std;
#define P(a,b) make_pair(a,b)
struct hash_map{
int fir[],l[],tox[],toy[],v[],cnt;
#define mod 100003
int& operator[](pair<int,int>p){
int x=p.first,y=p.second,hsh=(x*y%mod+mod)%mod;
for(int i=fir[hsh];i;i=l[i])if(tox[i]==x&&toy[i]==y)return v[i];
l[++cnt]=fir[hsh];fir[hsh]=cnt;tox[cnt]=x;toy[cnt]=y;v[cnt]=;return v[cnt];
}
void clear(){for(int i=;i<mod;++i)fir[i]=;cnt=;}
}m;
int mxt,u,l,r,f,b;char s[];
void n_turn(){
int U=u,L=l,R=r,F=f,B=b;
u=B-F;f=B;b=B+U;
for(int i=l;i<r;++i)for(int j=f;j<b;++j){int &x=m[P(i,j)];x++,mxt=max(mxt,x);}
}
void s_turn(){
int U=u,L=l,R=r,F=f,B=b;
u=B-F;b=F;f=F-U;
for(int i=l;i<r;++i)for(int j=f;j<b;++j){int &x=m[P(i,j)];x++,mxt=max(mxt,x);}
}
void w_turn(){
int U=u,L=l,R=r,F=f,B=b;
u=R-L;r=L;l=L-U;
for(int i=l;i<r;++i)for(int j=f;j<b;++j){int &x=m[P(i,j)];x++,mxt=max(mxt,x);}
}
void e_turn(){
int U=u,L=l,R=r,F=f,B=b;
u=R-L;l=R;r=R+U;
for(int i=l;i<r;++i)for(int j=f;j<b;++j){int &x=m[P(i,j)];x++,mxt=max(mxt,x);}
}
int main(){//freopen("ex_block2.in","r",stdin);
int t;scanf("%d",&t);
while(t--){
l=,r=,f=,b=,mxt=;scanf("%d%s",&u,s);m.clear();m[P(,)]++;
for(int i=;s[i];++i)
if(s[i]=='N')n_turn();
else if(s[i]=='E')e_turn();
else if(s[i]=='W')w_turn();
else if(s[i]=='S')s_turn();
for(int i=l;i<r;++i)for(int j=f;j<b;++j)printf("%d ",i);puts("");
for(int i=l;i<r;++i)for(int j=f;j<b;++j)printf("%d ",j);puts("");
printf("%d\n",mxt);
}
}

T2:数字

比较神仙。

高精还是要打的,但是只需要读入,除2和5的倍数的低精数,模同理,以及大于号。。。

模的话直接取最低位返回就行。。。emm我是万进制的

设Ext(a,b)是b除去所有因子a后剩下的数,那么题目就是求Ext(10,n!)%10k

直觉,可以CRT。分成2和5处理。

绝大多数情况下因子2都严格比5多,所以Ext(10,n!)%2==0

现在只需要求出Ext(5,n!)%10k

那么分解1000就是8×125。对于8其因子数也很多所以最后乘逆元。

问题就变成求Ext mod125的答案了。

可以把阶乘里能整除5的和不能的分开考虑,而能被整除的部分就是Ext(5,(n/5)!),递归处理。

可以发现Ext之后阶乘操作其实是循环的,因为mod125所以每125位就循环了。

循环的部分可以快速幂处理。剩余部分可以预处理。

我知道这作为一个题解过于草率,没时间了溜了。

 #include<cstdio>
#include<cstring>
#include<iostream>
using namespace std;
char s[];int l,k;const int mod[]={,,,},m5[]={,,,};int fac[],FAC[];
struct bigint{
int a[],ws;
void get(){
ws=(l-)/+;for(int i=;i<=;++i)a[i]=;
for(int i=;i<ws;++i)a[i]=s[l-*i]*+s[l-*i+]*+s[l-*i+]*+s[l-*i+];
for(int i=;i<=(l-)%+;++i)a[ws]=a[ws]*+s[i-];
}
void operator/=(int k){
for(int i=ws;i;--i)a[i-]+=a[i]%k*,a[i]/=k;
while(!a[ws]&&ws)ws--;
}
int operator%(int k){return a[]%k;}
bool operator>(int k){return ws>||a[]>k;}
}n,m;
int pow(int b,int t,int mod,int a=){for(;t;t>>=,b=b*b%mod)if(t&)a=a*b%mod;return a;}
int Ext(bigint n){
if(n>);else return fac[n.a[]];
int x=n%;n/=;int K=Ext(n);n/=;
return K*pow(FAC[],n%,)%*FAC[x]%;
}
void put(int x,int k){for(int i=k;i;--i)if(x%mod[i]/mod[i-]==)putchar();else break;printf("%d\n",x%mod[k]);}
int main(){//freopen("t2.in","r",stdin);freopen("t2.out","w",stdout);
fac[]=FAC[]=;for(int i=;i<=;++i){int j=i;while(j%==)j/=;fac[i]=fac[i-]*j%;FAC[i]=FAC[i-]*(i%==?:i)%;}
int ans,t,tot;scanf("%d",&t);
while(t--){
scanf("%s%d",s,&k);l=strlen(s);
for(int i=;i<l;++i)s[i]-=;
n.get();ans=Ext(n);
if(l==&&n.a[]<=){int a=;for(int i=;i<=n.a[];++i)a*=i;if(a%==)a/=;put(a,k);continue;}
m=n;tot=;
while(m.ws)m/=,(tot+=m%)%=;
ans*=pow(,tot,);ans%=;
for(int i=;i<;i+=)if(i%==ans)put(i,k);
}
}

T3:甜圈

考察的思路很不错啊。

因为不能多不能少不能乱序,所以很符合字符串的性质。

因为要区间操作,所以方便快捷的hash。

那么就变成了区间加区间乘的线段树啦!

(居然还有人不会线段树板子%%%)

 #include<cstdio>
int cl[],cr[],ans;
unsigned long long hsh[],lzm[],lza[],HSH;
void build(int p,int l,int r){
cl[p]=l;cr[p]=r;lzm[p]=;
if(l==r)return;
build(p<<,l,l+r>>);build(p<<|,(l+r>>)+,r);
}
void down(int p){
hsh[p<<]*=lzm[p];hsh[p<<|]*=lzm[p];
lzm[p<<]*=lzm[p];lzm[p<<|]*=lzm[p];
lza[p<<]*=lzm[p];lza[p<<|]*=lzm[p];
hsh[p<<]+=lza[p];hsh[p<<|]+=lza[p];
lza[p<<]+=lza[p];lza[p<<|]+=lza[p];
lza[p]=;lzm[p]=;
}
void chg(int p,int l,int r,int w){
if(l<=cl[p]&&cr[p]<=r){hsh[p]=hsh[p]*+w;lza[p]*=;lzm[p]*=;lza[p]+=w;return;}
if(lza[p]||lzm[p]!=)down(p);
if(l<=cr[p<<])chg(p<<,l,r,w);
if(r>=cl[p<<|])chg(p<<|,l,r,w);
}
void ask(int p){
if(cl[p]==cr[p]){ans+=HSH==hsh[p];return;}
if(lza[p]||lzm[p]!=)down(p);
ask(p<<);ask(p<<|);
}
int main(){
int n,t,l,r,w,k;
scanf("%d%d%d",&n,&k,&t);
build(,,n);
while(t--)scanf("%d%d%d",&l,&r,&w),chg(,l,r,w);
for(int i=;i<=k;++i)HSH=HSH*+i;
ask();printf("%d\n",ans);
}

[考试反思]1005csp-s模拟测试61:休止的更多相关文章

  1. [考试反思]0718 NOIP模拟测试5

    最后一个是我...rank#11 rank#1和rank#2被外校大佬包揽了. 啊...考的太烂说话底气不足... 我考场上在干些什么啊!!! 20分钟“切”掉T2,又27分钟“切”掉T1 切什么切, ...

  2. csp-s模拟测试61砖块, 数字,甜圈题解

    题面:https://www.cnblogs.com/Juve/articles/11626350.html 砖块: 直接模拟即可,map统计被覆盖的次数 #include<iostream&g ...

  3. [考试反思]0814NOIP模拟测试21

    前两名是外校的240.220.kx和skyh拿到了190的[暴力打满]的好成绩. 我第5是170分,然而160分就是第19了. 在前一晚上刚刚爆炸完毕后,心态格外平稳. 想想前一天晚上的挣扎: 啊啊啊 ...

  4. [考试反思]1109csp-s模拟测试106:撞词

    (撞哈希了用了模拟测试28的词,所以这次就叫撞词吧) 蓝色的0... 蓝色的0... 都该联赛了还能CE呢... 考试结束前15分钟左右,期望得分300 然后对拍发现T2伪了写了一个能拿90分的垃圾随 ...

  5. [考试反思]0909csp-s模拟测试41:反典

    说在前面:我是反面典型!!!不要学我!!! 说在前面:向rank1某脸学习,不管是什么题都在考试反思后面稍微写一下题解. 这次是真的真的运气好... 这次知识点上还可以,但是答题策略出了问题... 幸 ...

  6. [考试反思]0729NOIP模拟测试10

    安度因:哇哦. 安度因:谢谢你. 第三个rank1不知为什么就来了.迷之二连?也不知道哪里来的rp 连续两次考试数学都占了比较大的比重,所以我非常幸运的得以发挥我的优势(也许是优势吧,反正数学里基本没 ...

  7. [考试反思]0714/0716,NOIP模拟测试3/4

    这几天时间比较紧啊(其实只是我效率有点低我在考虑要不要坐到后面去吹空调) 但是不管怎么说,考试反思还是要写的吧. 第三次考试反思没写总感觉缺了点什么,但是题都刷不完... 一进图论看他们刷题好快啊为什 ...

  8. [考试反思]1003csp-s模拟测试58:沉淀

    稳住阵脚. 还可以. 至少想拿到的分都拿到了,最后一题的确因为不会按秩合并和线段树分治而想不出来. 对拍了,暴力都拍了.挺稳的. 但是其实也有波折,险些被卡内存. 如果内存使用不连续或申请的内存全部使 ...

  9. [考试反思]0816NOIP模拟测试23

    210 210 210 170 还可以.暴力打满就rk4了? 但不管怎么说,总算是在改完题之后理直气壮的写考试反思了. T1是个dp,说水也不太水.(当然某脸只要A掉了一道题就要说那是水题) 我的思路 ...

随机推荐

  1. pinpoint1.8.5安装及使用指南

    简介 pinpoint是开源在github上的一款APM监控工具,它是用Java编写的,用于大规模分布式系统监控.它对性能的影响最小(只增加约3%资源利用率),安装agent是无侵入式的. 各大APM ...

  2. 09-01 Tensorflow1基本使用

    目录 Tensorflow基本使用 一.确认安装Tensorflow 二.获取MNIST数据集 三.使用Tensorflow训练--Softmax回归 四.使用Tensorflow训练--卷积神经网络 ...

  3. sublime text2解决中文乱码,支持中文的设置方法

    步骤: 1.安装Sublime Package Control.        在Sublime Text 2上用Ctrl+-打开控制台并在里面输入以下代码,Sublime Text 2就会自动安装P ...

  4. 【NOIP模拟赛】小奇挖矿 2

    [题目背景] 小奇飞船的钻头开启了无限耐久+精准采集模式!这次它要将原矿运到泛光之源的矿石交易市场,以便为飞船升级无限非概率引擎. [问题描述] 现在有m+1个星球,从左到右标号为0到m,小奇最初在0 ...

  5. python requests-toolbelt 生成上传multipart/form-data格式数据

    需求背景 想使用requests做一个自动上传的功能,发现这里问题挺多的,就记录一下. 如上图上传功能,一般分为input标签,非input标签.我这里也不管什么标签,直接抓包看数据流. Conten ...

  6. 最新打赏正版V15微信视频打赏源码 带(百倍)暗雷 N秒试看 自动切换域名 自动防封

    免签支付域名防封随机跳转盒子推广设置试看N秒百倍 平台搭建:乌龟-源码科技QQ:64430146 全新版本 V15打赏版本功能介绍: 特别注意: 新增加功能!!!! 1.包括V14所有功能(除个别因优 ...

  7. 【Java 基础】谈谈集合.List

    目录 1. ArrayList 1.1 ArrayList的构造 1.2 add方法 1.3 remove方法 1.4 查询方法 1.5 一些其他常用方法 1.6 ArrayList小结 2. Vec ...

  8. [Luogu2323] [HNOI2006]公路修建问题

    题目描述 输入输出格式 输入格式: 在实际评测时,将只会有m-1行公路 输出格式: 输入输出样例 输入样例#1: 复制 4 2 5 1 2 6 5 1 3 3 1 2 3 9 4 2 4 6 1 输出 ...

  9. Centos7安装moloch步骤

      Centos7安装moloch步骤 Moloch 是一个由AOL开源的,能够大规模的捕获IPv4数据包(PCAP).索引和数据库系统,由以下三个部分组成: capture :绑定interface ...

  10. POJ 1753 Flip Game(状态压缩+BFS)

    题目网址:http://poj.org/problem?id=1753 题目: Flip Game Description Flip game is played on a rectangular 4 ...