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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

2021辽宁省大学生程序设计竞赛(热身赛)【完结】

發(fā)布時間:2025/3/20 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 2021辽宁省大学生程序设计竞赛(热身赛)【完结】 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

為馬上要來的ccpc省賽做準備,打一下其他省的熱身賽玩玩

目錄

  • A: a+b+c【簽到】
  • B: 遼寧的記憶【簽到】
  • C: 愛書人的資料查詢【KMP】
  • D: 巧克力蛋糕【簽到】
  • E:香辣牛肉面【數(shù)論】

A: a+b+c【簽到】


https://ac.nowcoder.com/acm/contest/22351/A

#include<bits/stdc++.h> using namespace std; int main(void) {int t; cin>>t;while(t--){long long int a,b,c; cin>>a>>b>>c;cout<<a+b+c<<endl; } }

B: 遼寧的記憶【簽到】


https://ac.nowcoder.com/acm/contest/22351/B

#include<bits/stdc++.h> using namespace std; int main(void) {int t; cin>>t;while(t--){long long int a; cin>>a;cout<<a+1946<<endl;} }

C: 愛書人的資料查詢【KMP】


https://ac.nowcoder.com/acm/contest/22351#question
本想直接暴力,加O2等優(yōu)化看可不可以莽過去。后來不行,那直接KMP板子走一波。

#include<bits/stdc++.h> using namespace std; int t,n; string s[50],w; long long int solve() {for(int i=0;i<n;i++) s[i]="*"+s[i];w="*"+w;//讓其下標從1開始,便于寫long long int ans=0;for(int k=0;k<n;k++){string a=s[k];string b=w;int ne[50]={0};int len1=a.size()-1;int len2=b.size()-1;for(int i=2,j=0;i<=len1;i++){while(j&&a[i]!=a[j+1]) j=ne[j];if(a[i]==a[j+1]) j++;ne[i]=j;}for(int i=1,j=0;i<=len2;i++){while(j&&b[i]!=a[j+1]) j=ne[j];if(b[i]==a[j+1]) j++;if(j==len1){ans++;j=ne[j];}}}return ans; } int main(void) {cin>>t;while(t--){scanf("%d",&n);for(int i=0;i<n;i++) cin>>s[i];cin>>w; long long int cnt=solve();printf("%d\n",cnt);}return 0; }

D: 巧克力蛋糕【簽到】


https://ac.nowcoder.com/acm/contest/22351/D
任意倆條邊交一個點。故Cn2C_n^2Cn2?種可能

#include<bits/stdc++.h> using namespace std; int main(void) {int t; cin>>t;while(t--){long long int n; cin>>n;cout<<n*(n-1)/2<<endl;} }

E:香辣牛肉面【數(shù)論】


https://ac.nowcoder.com/acm/contest/22351/E
詳細的題解
通過分析你會發(fā)現(xiàn)它本質(zhì)求的一個[1,n]所有數(shù)的約數(shù)個數(shù)之和的問題
O(n)的做法 過不去得加速

#include<iostream> using namespace std;int main() {int n,cnt=0;cin>>n;for(int i=1;i<=n;i++)//[1,n]中的所有數(shù)含有約數(shù)i的有n/i個(向下取整)cnt+=n/i;cout<<cnt<<endl;return 0; }

加速法:(O(開根號n))可以過

#include<bits/stdc++.h> using namespace std; typedef long long int LL; int main() {int t; cin>>t;while(t--){LL n,ans=0;scanf("%lld",&n);for(LL i=1,j;i<=n;i=j+1)//節(jié)約時間{ j=n/(n/i);ans+=(n/i)*(j-i+1);}printf("%lld\n",ans);}return 0; }

總結(jié)

以上是生活随笔為你收集整理的2021辽宁省大学生程序设计竞赛(热身赛)【完结】的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。