欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

欢乐纪中A组赛【2019.8.18】

发布时间:2023/12/3 53 豆豆
生活随笔 收集整理的这篇文章主要介绍了 欢乐纪中A组赛【2019.8.18】 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

前言

有一个暴力写挂了QVQQVQQVQ


成绩

RankRankRankPersonPersonPersonScoreScoreScoreAAABBBCCC
111111(J−3)LRZ(J-3)LRZ(J3)LRZ140140140100100100303030101010
191919(J−3)WYC(J-3)WYC(J3)WYC120120120100100100101010101010
262626(J−3)HZB(J-3)HZB(J3)HZB100100100606060303030101010
262626(J−3)XJQ(J-3)XJQ(J3)XJQ100100100100100100000000
393939(H−1)QYH(H-1)QYH(H1)QYH909090202020707070000
393939(J−3)XXY(J-3)XXY(J3)XXY909090606060303030000
474747(J−3)LW(J-3)LW(J3)LW707070404040303030000
606060(H−2)HJW(H-2)HJW(H2)HJW404040404040000000
606060(H−2)LZX(H-2)LZX(H2)LZX404040404040000000
606060(H−2)TRX(H-2)TRX(H2)TRX404040404040000000
606060(J−3)HJQ(J-3)HJQ(J3)HJQ404040404040000000

正题


T1:jzoj6309−T1:jzoj6309-T1:jzoj6309完全背包【贪心,,,背包】

链接:
https://blog.csdn.net/Mr_wuyongcong/article/details/99707673


T2:jzoj6308−T2:jzoj6308-T2:jzoj6308中间值【分治】

链接:
https://blog.csdn.net/Mr_wuyongcong/article/details/99707694


T3:jzoj6306−SequenceT3:jzoj6306-SequenceT3:jzoj6306Sequence【线性筛,,,积性函数,,,数论】

链接:
https://blog.csdn.net/Mr_wuyongcong/article/details/99707865


总结

不想写,反正就是T1T1T1写了贪心T2T2T2写了暴力结果写挂了T3T3T3写了暴力10pts10pts10pts


SomeofcodeSome\ of\ codeSome of code


T210ptscodeT2\ 10pts\ codeT2 10pts code

#include<cstdio> #include<cstring> #include<algorithm> using namespace std; const int N=510000; int n,m,a[N],b[N]; int calc(int *a,int w,int l,int r) {return (lower_bound(a+l,a+1+r,w)-a)-l;} int solve(int *a,int *b,int l1,int r1,int l2,int r2) {int l=l1,r=r1,k=(r1-l1+r2-l2+3)/2;while(l<=r){int mId=(l+r)/2;if(mId-l1+1+calc(b,a[mId],l2,r2)<k) l=mId+1;else r=mId-1;}if(l>r1) return 0;return a[l]*((l-l1+1+calc(b,a[l],l2,r2))==k); } int main() {freopen("median.in","r",stdin);freopen("median.out","w",stdout);scanf("%d%d",&n,&m);for(int i=1;i<=n;i++)scanf("%d",&a[i]);for(int i=1;i<=n;i++)scanf("%d",&b[i]);while(m--){int opt,x,y,l,r;scanf("%d%d%d%d",&opt,&x,&y,&l);if(opt==1){if(l) a[x]=y;else b[x]=y; }else{scanf("%d",&r);printf("%d\n",solve(a,b,x,y,l,r)|solve(b,a,l,r,x,y));}} }

T310ptscodeT3\ 10pts\ codeT3 10pts code

#include<cstdio> #include<cstring> #include<algorithm> const int XJQ=998244353; int n,m,B,prime[5100000],cnt,ans; bool v[21000000]; using namespace std; int power(int x,int b) {int ans=1;while(b){if(b&1) ans=ans*x%XJQ;x=x*x%XJQ;b>>=1;}return ans; } void dfs(int dep,int sum,int e) {int i=1,k=0;if(dep>cnt){(ans+=power(sum,n))%=XJQ;return;}while(e*i<=m)dfs(dep+1,sum*(k+1),e*i),k++,i*=prime[dep]; } void solve(int x,int gcd) {if(x==n){(ans+=gcd)%=XJQ;return;}for(int i=1;i<=cnt;i++)solve(x+1,__gcd(gcd,prime[i])); } int main() {freopen("sequence.in","r",stdin);freopen("sequence.out","w",stdout);scanf("%d%d%d",&n,&m,&B);if(B==1){v[1]=1;for(int i=2;i<=m;i++){if(!v[i]) prime[++cnt]=i;for(int j=1;j<=cnt&&i*prime[j]<=m;j++){v[prime[j]*i]=1;if(!(i%prime[j])) break;}}memset(v,0,sizeof(v));dfs(1,1,1);printf("%d",ans);}else{do{cnt=0;for(int i=1;i*i<=m;i++){if(!(m%i)) prime[++cnt]=i;if(!(m%i)&&m/i!=i)prime[++cnt]=m/i;}solve(0,B);}while(m--);printf("%d",ans);} }

话说

今天牛客Rank1Rank1Rank1!!!!!!!!!(然而是一堆原题的水题赛)

总结

以上是生活随笔为你收集整理的欢乐纪中A组赛【2019.8.18】的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。