日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

机房测试9.23

發布時間:2023/11/27 生活经验 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 机房测试9.23 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題解之前

今天還行啊。

Set

肯定要取模。

開始還在想vector這種操作,后來一個dalao發現一定有解,然后有發現一定有一種答案是連續的一段區間,于是就切掉了。

看了題解才發現我們只是運氣好。

前綴和如果有n取值,就選%n=0的那一個,不然至多只剩n-1個取值,然而又有n個前綴和。

所以必然有兩個相等,輸出這之間的下標即可。

#include<cstdio>
#include<cctype>
#include<cstring>
#define FN "set"const int maxn=1e6+5;inline int read() {int x;char ch;while(!isdigit(ch=getchar()));for(x=ch-'0';isdigit(ch=getchar());x=x*10+ch-'0');return x;
}int a[maxn],mod[maxn];int main() {freopen(FN".in","r",stdin);freopen(FN".out","w",stdout);int n;scanf("%d",&n);for(int i=1;i<=n;i++) {a[i]=read()%n;}memset(mod,-1,sizeof(mod));int sum=0;for(int i=1;i<=n;i++) {sum=(sum+a[i])%n;if(!a[i]) {printf("1\n%d",i);return 0;}if(~mod[sum]) {printf("%d\n",i-mod[sum]);for(int j=mod[sum]+1;j<=i;j++)printf("%d%c",j,(j==i)?'\n':' ');return 0;}mod[sum]=i;}printf("-1");return 0;
}

Read


并不知道subtask是什么,因為我A了。

想要每天讀書種類不同,就要求每一種書不超過其他書總和+1,于是找出有沒有這么一本書就行了。

由于空間限制,不存A數組,按照那個跑兩遍,第一遍找最大值是誰,第二遍找最大值出現了幾次,在進行比對即可。

#include<bits/stdc++.h>
#define FN "read"const int maxm=1000+5;int count[maxm],X[maxm],Y[maxm],Z[maxm];inline int read() {int x;char ch;while(!isdigit(ch=getchar()));for(x=ch-'0';isdigit(ch=getchar());x=x*10+ch-'0');return x;
}int main() {freopen(FN".in","r",stdin);freopen(FN".out","w",stdout);int M=read(),K=read(),N=0,S=(1<<K)-1;for(int i=1;i<=M;++i) count[i]=read();for(int i=1;i<=M;++i) X[i]=read();for(int i=1;i<=M;++i) Y[i]=read();for(int i=1;i<=M;++i) Z[i]=read();int whi=-1,num=0;for(int i=1;i<=M;++i) {N=N+1;int temp=X[i];if(!num) whi=temp;if(temp==whi) ++num;else --num;long long last=X[i];for (int j=1;j<count[i];++j) {last=(1LL*last*Y[i]+Z[i])&S;N=N+1;temp=last;if(!num) whi=temp;if(temp==whi) ++num;else --num;}}num=0;for(int i=1;i<=M;++i) {int temp=X[i];if(temp==whi) ++num;long long last=X[i];for (int j=1;j<count[i];++j) {last=(1LL*last*Y[i]+Z[i])&S;temp=last;if(temp==whi) ++num;}}int ans;if(num<=(N+1)/2) ans=0;else ans=num-N+num-1;printf("%d",ans);return 0;
}

race


trie樹,還在搶救中~

轉載于:https://www.cnblogs.com/LoLiK/p/9692727.html

總結

以上是生活随笔為你收集整理的机房测试9.23的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。