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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

2021夏季每日一题 【week5 完结】

發布時間:2025/3/20 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 2021夏季每日一题 【week5 完结】 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

  • 3636. 數組延伸 【難度: 一般 / 知識點: 思維 模擬 壓縮】
  • 3646. 分水果 【難度: 一般 / 知識點: 二進制枚舉】
  • 3655. 樓層 【難度: 簡單 / 知識點: 模擬】
  • 3663. 打印數字菱形 【難度: 一般 / 知識點: 曼哈頓距離 規律】
  • 3664. 數組補全 【難度: 一般 / 知識點: 貪心】

3636. 數組延伸 【難度: 一般 / 知識點: 思維 模擬 壓縮】


題目詳解

#include<bits/stdc++.h> using namespace std; const int N=1e5+10; int t,n,x; long long int a; int main(void) {cin>>t;while(t--){cin>>n>>x;queue< pair<int,int> >q;long long int ans=0;for(int i=0;i<n;i++) cin>>a,ans+=a,q.push({a,1});int k=1;while(q.size()){auto temp=q.front(); q.pop();if(temp.first%x==0){ans+=(temp.first)*(temp.second);q.push({(temp.first)/x,(temp.second)*x});//壓縮}else break;k++;}cout<<ans<<endl;}return 0; }

3646. 分水果 【難度: 一般 / 知識點: 二進制枚舉】

#include<bits/stdc++.h> using namespace std; int a[7][3]= {{0,0,1},{0,1,0},{0,1,1},{1,0,0},{1,0,1},{1,1,0},{1,1,1} }; int b[3],c[3],t,ans; int main(void) {cin>>t;while(t--){int ans=0;for(int i=0;i<3;i++) cin>>b[i];for(int i=0;i<1<<7;i++){int cnt=0;memcpy(c,b,sizeof b);bool flag=true;for(int j=0;j<7;j++){if(i>>j&1){for(int k=0;k<3;k++) c[k]-=a[j][k];cnt++;}}for(int j=0;j<3;j++) if(c[j]<0) flag=false;if(flag) ans=max(ans,cnt);}cout<<ans<<endl;} }

3655. 樓層 【難度: 簡單 / 知識點: 模擬】

#include<bits/stdc++.h> using namespace std; int main(void) {int t; cin>>t;while(t--){int n,x; cin>>n>>x;int l=1,r=2;int k=1;while(1){if(n>=l&&n<=r) break;l=r+1,r=k*x+2;k++;}cout<<k<<endl;}return 0; }

3663. 打印數字菱形 【難度: 一般 / 知識點: 曼哈頓距離 規律】

#include<cstdio> #include<iostream> #include<cmath> using namespace std; int n; int main(void) {cin>>n; n=(n+1)*2;for(int i=0;i<n;i++){for(int j=0;j<n;j++){if(j==0) continue;if(i==0) continue;if(abs(i-n/2)+abs(j-n/2)==n/2-1) cout<<"0 ";else if(abs(i-n/2)+abs(j-n/2)<n/2)cout<<n/2-abs(i-n/2)-abs(j-n/2)-1<<" ";else cout<<" ";}if(i)cout<<endl;}return 0; } #include<bits/stdc++.h> using namespace std; int main(void) {int n; cin>>n;for(int i=0;i<n*2+1;i++){for(int j=0;j<n*2+1;j++){int t=abs(i-n)+abs(j-n);if(t<n+1) cout<<abs(n+1-t)-1<<" ";else cout<<" ";}cout<<endl;}return 0; }

3664. 數組補全 【難度: 一般 / 知識點: 貪心】


題目詳解

#include<bits/stdc++.h> using namespace std; const int N=1e5+10; int a[N]; int n,k,p,x,y; int main(void) {cin>>n>>k>>p>>x>>y;int l=0,r=0,sum=x;//統計左邊有多少個數,右邊有多少個數,sum是剩余的總和for(int i=0;i<k;i++){cin>>a[i];if(a[i]<y) l++;else r++;sum-=a[i];} if(l>n/2)//左邊的個數大于一半了{cout<<-1;return 0;}else if(r>=(n+1)/2)//右邊的個數大于一半了,直接補左邊即可{l=(n-k);r=0;}else//左右都需要加{l=n/2-l;r=(n+1)/2-r;}for(int i=y;i<=p;i++){for(int j=1;j<=y;j++){if(l*j+i*r<=sum){for(int k=1;k<=l;k++) cout<<j<<" ";for(int k=1;k<=r;k++) cout<<i<<" ";return 0;}}}cout<<-1;return 0; }

總結

以上是生活随笔為你收集整理的2021夏季每日一题 【week5 完结】的全部內容,希望文章能夠幫你解決所遇到的問題。

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