【五校联考四】总结
来源:互联网 发布:刀哥swift3.0源码 编辑:程序博客网 时间:2024/04/30 23:27
今天上午终于把题切完了。这套题考的都是基础的东西,比较接近提高组难度。前三套都挺难,于是天天棍分。但这套突然就不用棍分了,要打正解,就被虐了,基础知识各种渣。
题目分析
T1:等比数列求和,用快速幂算逆元。多么简单粗暴的题啊,当时我一直在纠结模的加减运算会不会出错,然后花式化简……然后就跪了;
T2:01分数规划。这道题比较有意思,设sigma(a[i])/sigma(b[i])>=R,R为所求。即可得sigma(a[i])-R*sigma(b[i])>=0 >> sigma(a[i]-R*b[i])>=0,这时候就可以二分找出R,令c[i]=a[i]-r*b[i],r为枚举的值,把c[i]从大到小排序,若c[i]>=0则r为合法解(PS:初始值l=0,r=max(a[i]/b[i]));
T3:线段树维护区间和与区间平方和。修改过程的参数没有开long long于是答案少了一截,搭上了国庆假期前三天,一直在改……
T4:manacher。首先在字符串中插入一些奇怪的符号来解决回文串长度的奇偶性问题。然后令p[i]=第i个位置向两边延伸的回文串长度(包括i),然后记录右端位置最靠后的回文串的信息,假设当前枚举到第i个位置,若id+p[id]>i,则p[i]可以根据回文串的对称性获得一个初始值,这样就减少了搜索量,时间复杂度达到O(n);
T5:dfs。水题,略;
T6:欧拉函数。第一问答案为phi[i],第二问答案为phi[i]i/2。至于phi的求法,设pri为记录质数的数组,并单调递增,对于i,若i为质数,则phi[i]=i-1,否则 >> 当i%pri[j]==0,phi[k]=phi[i]*pri[j],然后break,当i%pri[j]!=0,phi[k]=phi[i](pri[j]-1);
基础知识的薄弱主要体现在T1,T2,T4,和T6上(几乎都有了)。
最后附上T6的核心代码(求phi):void pre(ll n)
{
int tot=0;
fr(i,2,n-1)
{
if (!kan[i])
{
pri[++tot]=i;
phi[i]=i-1;
}
fr(j,1,tot)
{
ll k=i*pri[j];
if (k>n) break;
kan[k]=1;
if (i%pri[j]==0)
{
phi[k]=phi[i]*pri[j];
break;
}
else phi[k]=phi[i]*(pri[j]-1);
}
}
return;
}
- 五校联考四总结
- 【五校联考四】总结
- 五校联考四总结
- 五校联考4总结
- WC四校联考总结
- 【五校联考2015 9.4】总结
- noip2015五校联考2总结
- 【五校联考2015 9.19】总结
- noip2015五校联考3总结
- noip2015五校联考5总结
- noip2015五校联考6总结
- NOIP五校联考1-4总结
- 关于五校联考
- 【五校联考】集体照
- 五校联考第一套第一式总结
- noip2015五校联考1、9.12模拟总结
- NOIP2016提高组 五校联考1 总结
- NOIP四校联考前4场总结及反思
- 数据挖掘之数据预处理
- AutoLayout (自动布局)
- 怎样找到一个view所在的控制器(viewController)
- 数据库
- GCD 线程
- 【五校联考四】总结
- 使用python来调试串口
- POJ 3904 Sky Code(素因子分解+容斥)
- c++ primer 学习之路 指针的引用
- information retrieval
- 剑指offer—字符串的排列
- A015-布局之LinearLayout
- 关于系统运维监控规范的几点建议
- hdoj 2012 素数判定