2017-10-19 NOIP模拟赛
Count(哈格朗日插值)
题解: 有个定理,另sum(x)表示小于等于x的数中与x互质的数的和
sum(x)=φ(x)*x/2 最后可知f(x)=x (f(1)=2) 当然打表能知道。
然后就转化为了求Σi^k
然后就是拉格朗日插值法了,不在我理解范畴........
但这个博客介绍挺好哒 http://www.cnblogs.com/ECJTUACM-873284962/p/6833391.html
#include<iostream> #include<cstdio> #include<cstring> #define mod 998244353 #ifdef WIN32 #define PLL "%I64d" #else #define PLL "%lld" #endif using namespace std; int l,r,k; long long ans; long long mul(long long a,long long b){long long res=0;while(b){if(b&1)res=res+a;a=a+a;if(res>=mod)res-=mod;if(a>=mod)a-=mod;b>>=1;}return res; } long long Pow(long long a,int b){long long res=1;while(b){if(b&1)res=mul(res,a);a=mul(a,a);b>>=1;}return res; } int main(){freopen("count.in","r",stdin);freopen("count.out","w",stdout);//freopen("Cola.txt","r",stdin);scanf("%d%d%d",&l,&r,&k);for(int i=l;i<=r;i++){if(i==1)ans+=Pow(2,k);else ans+=Pow(i,k);if(ans>=mod)ans-=mod;}printf(PLL,ans);//cout<<ans; }
15分 暴力
Block
/* 题意转化为求最大的区间长度使得这段区间和减k>=0 首先做前缀和,可知若当前到了k,i<j<k && sum[i]<sum[j]则j一定不可能比i更优 用单调栈维护这个过程。然后倒序更新答案即可。 */ #include<iostream> #include<cstdio> #include<cstring>#define N 1000007using namespace std; long long sum[N]; int a[N],st[N],top,n,m,cnt;inline int read() {int x=0,f=1;char c=getchar();while(c>'9'||c<'0'){if(c=='-')f=-1;c=getchar();}while(c>='0'&&c<='9'){x=x*10+c-'0';c=getchar();}return x*f; }void solve(int k) {top=1;int res=0;for(int i=1;i<=n;i++) {sum[i]=sum[i-1]+a[i]-k;if(!top || sum[st[top]]>sum[i]) st[++top]=i;}for(int i=n;i>=1;i--) {while(top && sum[i]>=sum[st[top]]) top--;res=max(res,i-st[top+1]);}printf("%d ",res); }int main() {freopen("blocks.in","r",stdin);freopen("blocks.out","w",stdout);n=read();m=read();for(int i=1;i<=n;i++) a[i]=read();while(m--) solve(read());return 0; }
100分
Biology(Trie树+lca)
#include<iostream> #include<cstring> #include<cstdio> #define maxn 1000010 #define root 1 using namespace std; int n,m,tr[maxn][26],num,id[150010],tc=1,fa[maxn],dep[maxn]; char s[10010]; void Insert(){int now=root;for(int i=strlen(s+1);i>=1;i--){int p=s[i]-'a';if(tr[now][p]==0){tr[now][p]=++tc;fa[tc]=now;dep[tc]=dep[now]+1;}now=tr[now][p];}id[num]=now; } int lca(int a,int b){while(a!=b){if(dep[a]<dep[b])swap(a,b);a=fa[a];}return a; } int main(){freopen("biology.in","r",stdin);freopen("biology.out","w",stdout);//freopen("Cola.in","r",stdin);scanf("%d%d",&n,&m);fa[1]=0;dep[1]=0;for(int i=1;i<=n;i++){scanf("%s",s+1);num=i,Insert();}int op,nn,x;for(int i=1;i<=m;i++){scanf("%d",&op);if(op==1){scanf("%s",s+1);num++;Insert();}else{scanf("%d",&nn);int now;for(int j=1;j<=nn;j++){scanf("%d",&x);if(j==1)now=id[x];else now=lca(now,id[x]);}printf("%d\n",dep[now]);}}/*int sz=sizeof(tr)+sizeof(id)+sizeof(fa)+sizeof(dep);cout<<sz/1048576;*/return 0; } /* 5 5 zzj pri prime ime owaski 2 3 1 3 5 2 2 2 3 1 actri 2 2 3 4 2 3 2 6 5 */
80分 Trie树+暴力lca
#include<iostream> #include<cstring> #include<cstdio> #define maxn 1000010 #define root 1 using namespace std; int n,m,tr[maxn][26],num,id[150010],tc=1,fa[maxn][20],dep[maxn]; char s[10010]; void Insert(){int now=root;for(int i=strlen(s+1);i>=1;i--){int p=s[i]-'a';if(tr[now][p]==0){tr[now][p]=++tc;dep[tc]=dep[now]+1;fa[tc][0]=now;for(int j=1;j<=18;j++)fa[tc][j]=fa[fa[tc][j-1]][j-1];}now=tr[now][p];}id[num]=now;//for(int i=1;i<=18;i++)fa[now][i]=fa[fa[now][i-1]][i-1]; } int lca(int a,int b){if(dep[a]<dep[b])swap(a,b);for(int i=18;i>=0;i--)if(dep[fa[a][i]]>=dep[b])a=fa[a][i];for(int i=18;i>=0;i--)if(fa[a][i]!=fa[b][i])a=fa[a][i],b=fa[b][i];if(a==b)return a;return fa[a][0]; } int main(){freopen("biology.in","r",stdin);freopen("biology.out","w",stdout);//freopen("Cola.txt","r",stdin);scanf("%d%d",&n,&m);fa[1][0]=0;dep[1]=0;for(int i=1;i<=n;i++){scanf("%s",s+1);num=i,Insert();}int op,nn,x;for(int i=1;i<=m;i++){scanf("%d",&op);if(op==1){scanf("%s",s+1);num++;Insert();}else{scanf("%d",&nn);int now;for(int j=1;j<=nn;j++){scanf("%d",&x);if(j==1)now=id[x];else now=lca(now,id[x]);}printf("%d\n",dep[now]);}}/*int sz=sizeof(tr)+sizeof(id)+sizeof(fa)+sizeof(dep);cout<<sz/1048576;*/return 0; } /* 5 5 zzj pri prime ime owaski 2 3 1 3 5 2 2 2 3 1 actri 2 2 3 4 2 3 2 6 5 */
100分 Trie树+倍增lca
转载于:https://www.cnblogs.com/thmyl/p/7691510.html
2017-10-19 NOIP模拟赛相关推荐
- 2019.10.3 noip模拟赛
T1 天空龙 巨水,不讲. T3 太阳神 [问题描述] 太阳神拉很喜欢最小公倍数,有一天他想到了一个关于最小公倍 数的题目. 求满足如下条件的数对(a,b)对数: a,b 均为正整数且 a,b< ...
- NOIP模拟赛csy2021/10/30
NOIP模拟赛csy2021/10/30 比赛时间规划 赛后反思与总结 这..总的来说感觉打的很不好,根本没有状态,有一部分原因是今天来晚了,太慌,更多的还是这次题感觉很难o(╥﹏╥)o 比赛时间规划 ...
- 10.30 NFLS-NOIP模拟赛 解题报告
总结:今天去了NOIP模拟赛,其实是几道USACO的经典的题目,第一题和最后一题都有思路,第二题是我一开始写了个spfa,写了一半中途发现应该是矩阵乘法,然后没做完,然后就没有然后了!第二题的暴力都没 ...
- 辣鸡(ljh) NOIP模拟赛 模拟 平面几何 数论 化学相关(雾)
[题目描述] 辣鸡ljhNOI之后就退役了,然后就滚去学文化课了. 然而在上化学课的时候,数学和化学都不好的ljh却被一道简单题难住了,受到了大佬的嘲笑. 题目描述是这样的:在一个二维平面上有一层水分 ...
- NOI.AC NOIP模拟赛 第六场 游记
NOI.AC NOIP模拟赛 第六场 游记 queen 题目大意: 在一个\(n\times n(n\le10^5)\)的棋盘上,放有\(m(m\le10^5)\)个皇后,其中每一个皇后都可以向上.下 ...
- 2017.6.11 校内模拟赛
题面及数据及std(有本人的也有原来的) :2017.6.11 校内模拟赛 T1 自己在纸上模拟一下后就会发现 可以用栈来搞一搞事情 受了上次zsq 讲的双栈排序的启发.. 具体就是将原盘子大小cop ...
- 【noip模拟赛4】Matrix67的派对 暴力dfs
[noip模拟赛4]Matrix67的派对 描述 Matrix67发现身高接近的人似乎更合得来.Matrix67举办的派对共有N(1<=N<=10)个人参加,Matrix67需要把他们安排 ...
- 【HHHOJ】NOIP模拟赛 捌 解题报告
点此进入比赛 得分: \(30+30+70=130\)(弱爆了) 排名: \(Rank\ 22\) \(Rating\):\(-31\) \(T1\):[HHHOJ260]「NOIP模拟赛 捌」Dig ...
- jyzy noip模拟赛5.22-2
不知道哪来的题 jyzy noip模拟赛5.22-2 样例输入 1 2 3 4 样例输出 0.200000000000000 数据 |a|,|b|,|c|,|d|<=1e9 很多大佬迅速想到二分 ...
- NOIP 模拟赛 长寿花 题解
NOIP 模拟赛 长寿花 题解 要放 \(n\) 层物品,第 \(i\) 层有 \(a_i\) 个位置放物品,物品有 \(m\) 中颜色,有约束条件: 同一层两个相邻物品颜色不能相同. 相邻两层颜色集 ...
最新文章
- 基于Vue的Quasar Framework 介绍 这个框架UI组件很全面
- Xilinx FPGA 仿真环境设置(ISE + Modelsim + Debussy)
- 结构体:求最高分和最低分
- 从零开始学电脑_《新手从零开始学电脑》1.6——怎样才能打一手好字
- 设计模式:程序员跳不开的坑
- Python - 利用pip管理包
- 前后端交互json字符串
- Visual Studio项目引用出现感叹号怎么办?
- Matlab中的logspace函数,matlab之logspace函数
- yarn安装依赖包报错 error An unexpected error occurred: “https://registry.npm.taobao.orgnpm/element-ui: get
- Redis命令总结及其基础知识讲述
- linux 设备挂载ppt,.linux 挂载各种设备.pdf
- python字符串前缀
- 对抗Windows Defender的方法和思路
- Appium架构介绍与环境安装
- BF发卡网开源源码+详细教程
- 2021 新款苹果 iPad 真香,包邮送一个!
- win7\win10加域的电脑不输入密码直接登录登录电脑桌面
- java开发一个简单的通讯录
- spring中自带的缓存springcache
热门文章
- html如何转换成电子表,如何轻松将电子表格转换为HTML [快速提示] | MOS86
- php ajax 域名查询,PHP+AJAX 域名查询 PHP 源代码
- SourceInsight初学使用笔记
- mysql explode函数_hive中,lateral view 与 explode函数
- java io 字节流_Java之IO-字节流
- 远程访问服务器并登录LPAR,MySQL设置远程连接服务器
- deserializer does not exist: org.openx.data.jsonserde.JsonSerDe
- 如何使用phpMQTT连接阿里云微服务消息队列for IoT
- 阿里云物联网平台体验(NetGadgeteer+C#篇)
- 【数据蒋堂】第46期:大数据集群该不该透明化?