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模拟赛相关推荐

  1. 2019.10.3 noip模拟赛

    T1 天空龙 巨水,不讲. T3 太阳神 [问题描述] 太阳神拉很喜欢最小公倍数,有一天他想到了一个关于最小公倍 数的题目. 求满足如下条件的数对(a,b)对数: a,b 均为正整数且 a,b< ...

  2. NOIP模拟赛csy2021/10/30

    NOIP模拟赛csy2021/10/30 比赛时间规划 赛后反思与总结 这..总的来说感觉打的很不好,根本没有状态,有一部分原因是今天来晚了,太慌,更多的还是这次题感觉很难o(╥﹏╥)o 比赛时间规划 ...

  3. 10.30 NFLS-NOIP模拟赛 解题报告

    总结:今天去了NOIP模拟赛,其实是几道USACO的经典的题目,第一题和最后一题都有思路,第二题是我一开始写了个spfa,写了一半中途发现应该是矩阵乘法,然后没做完,然后就没有然后了!第二题的暴力都没 ...

  4. 辣鸡(ljh) NOIP模拟赛 模拟 平面几何 数论 化学相关(雾)

    [题目描述] 辣鸡ljhNOI之后就退役了,然后就滚去学文化课了. 然而在上化学课的时候,数学和化学都不好的ljh却被一道简单题难住了,受到了大佬的嘲笑. 题目描述是这样的:在一个二维平面上有一层水分 ...

  5. NOI.AC NOIP模拟赛 第六场 游记

    NOI.AC NOIP模拟赛 第六场 游记 queen 题目大意: 在一个\(n\times n(n\le10^5)\)的棋盘上,放有\(m(m\le10^5)\)个皇后,其中每一个皇后都可以向上.下 ...

  6. 2017.6.11 校内模拟赛

    题面及数据及std(有本人的也有原来的) :2017.6.11 校内模拟赛 T1 自己在纸上模拟一下后就会发现 可以用栈来搞一搞事情 受了上次zsq 讲的双栈排序的启发.. 具体就是将原盘子大小cop ...

  7. 【noip模拟赛4】Matrix67的派对 暴力dfs

    [noip模拟赛4]Matrix67的派对 描述 Matrix67发现身高接近的人似乎更合得来.Matrix67举办的派对共有N(1<=N<=10)个人参加,Matrix67需要把他们安排 ...

  8. 【HHHOJ】NOIP模拟赛 捌 解题报告

    点此进入比赛 得分: \(30+30+70=130\)(弱爆了) 排名: \(Rank\ 22\) \(Rating\):\(-31\) \(T1\):[HHHOJ260]「NOIP模拟赛 捌」Dig ...

  9. jyzy noip模拟赛5.22-2

    不知道哪来的题 jyzy noip模拟赛5.22-2 样例输入 1 2 3 4 样例输出 0.200000000000000 数据 |a|,|b|,|c|,|d|<=1e9 很多大佬迅速想到二分 ...

  10. NOIP 模拟赛 长寿花 题解

    NOIP 模拟赛 长寿花 题解 要放 \(n\) 层物品,第 \(i\) 层有 \(a_i\) 个位置放物品,物品有 \(m\) 中颜色,有约束条件: 同一层两个相邻物品颜色不能相同. 相邻两层颜色集 ...

最新文章

  1. 基于Vue的Quasar Framework 介绍 这个框架UI组件很全面
  2. Xilinx FPGA 仿真环境设置(ISE + Modelsim + Debussy)
  3. 结构体:求最高分和最低分
  4. 从零开始学电脑_《新手从零开始学电脑》1.6——怎样才能打一手好字
  5. 设计模式:程序员跳不开的坑
  6. Python - 利用pip管理包
  7. 前后端交互json字符串
  8. Visual Studio项目引用出现感叹号怎么办?
  9. Matlab中的logspace函数,matlab之logspace函数
  10. yarn安装依赖包报错 error An unexpected error occurred: “https://registry.npm.taobao.orgnpm/element-ui: get
  11. Redis命令总结及其基础知识讲述
  12. linux 设备挂载ppt,.linux 挂载各种设备.pdf
  13. python字符串前缀
  14. 对抗Windows Defender的方法和思路
  15. Appium架构介绍与环境安装
  16. BF发卡网开源源码+详细教程
  17. 2021 新款苹果 iPad 真香,包邮送一个!
  18. win7\win10加域的电脑不输入密码直接登录登录电脑桌面
  19. java开发一个简单的通讯录
  20. spring中自带的缓存springcache

热门文章

  1. html如何转换成电子表,如何轻松将电子表格转换为HTML [快速提示] | MOS86
  2. php ajax 域名查询,PHP+AJAX 域名查询 PHP 源代码
  3. SourceInsight初学使用笔记
  4. mysql explode函数_hive中,lateral view 与 explode函数
  5. java io 字节流_Java之IO-字节流
  6. 远程访问服务器并登录LPAR,MySQL设置远程连接服务器
  7. deserializer does not exist: org.openx.data.jsonserde.JsonSerDe
  8. 如何使用phpMQTT连接阿里云微服务消息队列for IoT
  9. 阿里云物联网平台体验(NetGadgeteer+C#篇)
  10. 【数据蒋堂】第46期:大数据集群该不该透明化?