[2018.8.12]模拟赛B组
T1
打表出奇迹,发现结论为\(E(a_n)=n+1\)即可。
#include <iostream>
#include <cstdio>
#include <cctype>
#include <cstring>
using namespace std;
int n,Q;
long long rd() {
long long x=0,f=1;char ch=getchar();
while(!isdigit(ch)) {if(ch=='-') f=-1;ch=getchar();}
while(isdigit(ch)) {x=x*10+ch-'0';ch=getchar();}
return x*f;
}
int main() {
Q=rd();
while(Q--) {printf("%lld\n",rd()+1);}
}
T2
正解应该是kmp,求出来nxt数组为偶数的就行了。但是蒟蒻了一下,并且受到200000的数据范围引导,写了个nlogn的做法,对于每个位置能延伸出去的长度,二分一下,check一下hash即可,荣幸成为全场除了写SA的老哥以外跑的最慢的。。。全场唯一一个hash+二分。。。(自从写单hash被卡后老老实实写双hash)
UPD:单hash并没有被卡。。
#include <algorithm>
#include <cstdio>
#include <cstring>
#include <iostream>
using namespace std;
long long n,m,ans;
char s[200005];
struct Hsh{
unsigned long long hsh[200005],fac[200005],mod,p;
void build(unsigned long long M,unsigned long long P) {
mod=M,p=P;
fac[0]=1;
for(int i=1;i<=n;i++) {hsh[i]=(hsh[i-1]*p+s[i]-'a'+1)%mod;fac[i]=fac[i-1]*p%mod;}
}
unsigned long long gethash(int l,int r){return (hsh[r]-hsh[l-1]*fac[r-l+1]%mod+mod)%mod;}
}hsh1,hsh2;
struct Node{unsigned long long h1,h2;bool operator ==(const Node &rhs) const {return h1==rhs.h1&&h2==rhs.h2;}}h[100005],t;
Node gethsh(int l,int r) {return {hsh1.gethash(l,r),hsh2.gethash(l,r)};}
unsigned long long h1[200005],h2[200005];
void ck(int pos) {int l=1,r=n/2,mid,dd=0;while(l<=r) {mid=l+r>>1;if(h[mid]==gethsh(pos,pos+(mid<<1)-1)) l=mid+1,dd=mid;else r=mid-1;}ans+=dd;}
int main() {
scanf("%s",s+1);n=strlen(s+1);
hsh1.build(1e9+7,31);hsh2.build(1e9+9,37);
for(int i=2;i<=n;i+=2) h[i>>1]=gethsh(1,i);
for(int i=1;i<=n;i++)ck(i);
cout<<ans<<endl;
}
T3
讲过
#include <iostream>
#include <algorithm>
#include <cstdio>
#include <cstring>
#define init for(int O=1;O<=n;O++) fa[O]=O;
using namespace std;
int n,m,fa[1005];
struct Node{int ans,l;bool operator < (const Node &rhs)const {return (ans==rhs.ans)?(l>rhs.l):(ans<rhs.ans);}}ans;
int find(int x) {return x==fa[x]?x:fa[x]=find(fa[x]);}
struct Edge{int a,b,l,r;}e[3005];
bool cmp(Edge x,Edge y) {return x.r>y.r;}
int main() {
scanf("%d%d",&n,&m);
ans.ans=0,ans.l=0;
for(int i=1;i<=m;i++) scanf("%d%d%d%d",&e[i].a,&e[i].b,&e[i].l,&e[i].r);
sort(e+1,e+1+m,cmp);
for(int i=1,u,v;i<=m;i++) {
init
for(int j=1;j<=m;j++) {
if(e[j].l<=e[i].l) {
u=find(e[j].a),v=find(e[j].b),fa[u]=v;
if(find(1)==find(n)) {ans=max(ans,{e[j].r-e[i].l+1,e[i].l});break;}
}
}
}
printf("%d\n",ans.ans);for(int i=ans.l;i<=ans.l+ans.ans-1;i++) printf("%d ",i);
}
[2018.8.12]模拟赛B组的更多相关文章
- 2018.8.6 模拟赛 提高组B
T1 Description 给定一个n个点m条边的有向图,有k个标记点,要求从规定的起点按任意顺序经过所有标记点到达规定的终点,问最短的距离是多少. Input 第一行5个整数n.m.k.s.t,表 ...
- 2018.12.30【NOIP提高组】模拟赛C组总结
2018.12.30[NOIP提高组]模拟赛C组总结 今天成功回归开始做比赛 感觉十分良(zhōng)好(chà). 统计数字(count.pas/c/cpp) 字符串的展开(expand.pas/c ...
- [10.12模拟赛] 老大 (二分/树的直径/树形dp)
[10.12模拟赛] 老大 题目描述 因为 OB 今年拿下 4 块金牌,学校赞助扩建劳模办公室为劳模办公室群,为了体现 OI 的特色,办公室群被设计成了树形(n 个点 n − 1 条边的无向连通图), ...
- 2017.1.16【初中部 】普及组模拟赛C组总结
2017.1.16[初中部 ]普及组模拟赛C组 这次总结我赶时间,不写这么详细了. 话说这次比赛,我虽然翻了个大车,但一天之内AK,我感到很高兴 比赛 0+15+0+100=115 改题 AK 一.c ...
- NOIP2020 模拟赛 B 组 Day6
非常巧妙的一场模拟赛,比较偏向于 Atcoder 的风格,考场上做出了 A .C 两题. A. 礼物购买 排完序后一个个礼物地枚举时间复杂度是\(\Theta(nm)\)的,不能接受.但是注意到,若当 ...
- 2018.10.17NOIP模拟赛解题报告
心路历程 预计得分:\(100 + 100 +100\) 实际得分:\(100 + 100 + 60\) 辣鸡模拟赛.. 5min切掉T1,看了一下T2 T3,感觉T3会被艹爆因为太原了.. 淦了20 ...
- 2018 蓝桥杯省赛 B 组模拟赛(五)
A模拟 代码1 #include<bits/stdc++.h> using namespace std; int n = 101; int a[120][120]; int ans = 0 ...
- 2020.09.12【NOIP提高组&普及组】模拟赛C组 总结
总结:这次比赛成绩并不理想,虽然策略得当 \(P.S.\):太多题有多组数据,但是样例只有一个数据 各题题解和改题情况 T1 匹配 题面 描述 给你一个由{a,b-z,A,B-.Z}组成的字符串,我们 ...
- 计蒜客2018 蓝桥杯省赛 B 组模拟赛(一)
1,结果填空:年龄 今天蒜头君带着花椰妹和朋友们一起聚会,当朋友们问起年龄的时候,蒜头君打了一个哑谜(毕竟年龄是女孩子的隐私)说:“我的年龄是花椰妹年龄个位数和十位数之和的二倍”. 花椰妹看大家一脸懵 ...
随机推荐
- CSDN日报20170423 ——《私活,永远挽救不了自己屌丝的人生!》
[程序人生]私活,永远挽救不了自己屌丝的人生! 作者:北漂周 大多数接私活的人.是压根不知道下班后的时间他能够干什么!看剧?追星?逛街?当然,与这些对照,私活是一个更好的选择. 假设有这个时间,为什么 ...
- HDOJ 题目5097 Page Rank(矩阵运算,模拟)
Page Rank Time Limit: 3000/1500 MS (Java/Others) Memory Limit: 100000/100000 K (Java/Others) Tota ...
- 【cl】字符串
使用单引号(') 你可以用单引号指示字符串,就如同‘How are you’这样.所有的空白,即空格跟制表符都照原样保留 使用双引号(“) 在双引号中的字符串与单引号中的字符串的使用完全相同,例如“W ...
- LeetCode 210. Course Schedule II(拓扑排序-求有向图中是否存在环)
和LeetCode 207. Course Schedule(拓扑排序-求有向图中是否存在环)类似. 注意到.在for (auto p: prerequistites)中特判了输入中可能出现的平行边或 ...
- 微软继MVC5后,出现ASP.NET VNEXT
vNext又称MVC 6.0,不再须要依赖System.Web.占用的内存大大降低(从前不管是多么简单的一个请求.System.Web本身就要占用31KB内存). 能够self-host模式执行.站点 ...
- Uva 11021(概率)
题意:有k只麻球,每只只能活一天,但临死之前可能产生新麻球,生出i个麻球的概率为pi,给定m,求m天后所有麻球都死亡的概率 输入格式 输入一行为测试数据的组数T,每组数据第一行为3个整数n,k,m;已 ...
- Android常见面试题学习第一天(原创)
1. 内存泄漏 在android程序开发中,当一个对象已经不需要再使用了,本该被回收时,而另外一个正在使用的对象持有它的引用从而导致它不能被回收,这就导致本该被回收的对象不能被回收而停留在堆内存中,内 ...
- tp框架---表单验证
自动验证是ThinkPHP模型层提供的一种数据验证方法,可以在使用create创建数据对象的时候自动进行数据验证.分为静态验证和动态验证. 关于基础知识,请查看手册“自动验证”一章. 一.静态验证 ( ...
- AndroidStudio项目CMakeLists解析
# For more information about using CMake with Android Studio, read the# documentation: https://d.and ...
- ROS-TF-广播
前言:将海龟的坐标系变换广播到TF. URDF文件的描述是在相对坐标上进行的,运动起来就需要考虑机器人各个连杆的相对位置关系.TF的诞生就是为了自动管理这些相对关系下的坐标变换的,而我们需要做的就是给 ...