2021暑假每日一题 【week7 完结】
生活随笔
收集整理的這篇文章主要介紹了
2021暑假每日一题 【week7 完结】
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
目錄
- 3806. 最小化字符串【難度: 一般 / 知識點: 貪心】
- 3807. 構造字符串【難度: 簡單 / 知識點: 貪心】
- 3808. 畫正方形【難度: 一般 / 知識點: 思維】
- 3809. 修改數組【難度: 一般 / 知識點: 貪心 枚舉】
- 3810. 最長連續休息時間【難度: 一般 / 知識點: 模擬 斷環成鏈】
3806. 最小化字符串【難度: 一般 / 知識點: 貪心】
如果一個字母后的字母小于當前的字母,則刪除該字母。
如果都不滿足則只能刪除最后一個
3807. 構造字符串【難度: 簡單 / 知識點: 貪心】
就是說在出現次數最少的字符串中,找到一個最大的最小值。
那么我們就要盡可能的平均分配,這樣最小值才會盡可能的大
3808. 畫正方形【難度: 一般 / 知識點: 思維】
題目的意思其實就是 xy>=n 且 x+y 要盡可能的小。
故在滿足 xy>=n 的條件下 讓 x和y盡可能的接近
3809. 修改數組【難度: 一般 / 知識點: 貪心 枚舉】
#include<bits/stdc++.h> using namespace std; const int N=1e3+10; int a[N],n; int main(void) {int t; cin>>t;while(t--){cin>>n;int temp=0;for(int i=0;i<n;i++) cin>>a[i],temp=max(temp,a[i]);int ans=1e9,index=0;for(int i=1;i<=temp;i++)//枚舉答案{int sum=0;for(int j=0;j<n;j++){if(abs(a[j]-i)<=1) continue;else sum+=abs(a[j]-i)-1;}if(sum<ans) ans=sum,index=i;}cout<<index<<" "<<ans<<endl;}return 0; }3810. 最長連續休息時間【難度: 一般 / 知識點: 模擬 斷環成鏈】
#include<bits/stdc++.h> using namespace std; const int N=1e5*4+10; int a[N],n,t; int main(void) {cin>>t;while(t--){cin>>n;for(int i=0;i<n;i++) cin>>a[i],a[i+n]=a[i];int cnt=0;int ans=0;for(int i=0;i<2*n;i++){if(a[i]==1) cnt++;else cnt=0;ans=max(ans,cnt);}cout<<ans<<endl;}return 0; }總結
以上是生活随笔為你收集整理的2021暑假每日一题 【week7 完结】的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2021暑假每日一题 【week3 完结
- 下一篇: 2021暑假每日一题 【week8 完结