2021暑假每日一题 【week4 完结】
生活随笔
收集整理的這篇文章主要介紹了
2021暑假每日一题 【week4 完结】
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
目錄
- 3781. 乘車問題【難度: 簡單 / 知識點: 模擬】
- 3782. 點【難度: 中 / 知識點: 數學 推式子】
- 3783. 第 k 個除數【難度: 一般 / 知識點: 數學 求因子】
- 3784. 交換相鄰元素【難度: 一般 / 知識點: 思維題】
- 3785. 戰艦 【難度: 一般 / 知識點: 枚舉】
3781. 乘車問題【難度: 簡單 / 知識點: 模擬】
#include<bits/stdc++.h> using namespace std; const int N=1e5+10; int a[N],n,m; int main(void) {int t; cin>>t;while(t--){cin>>n>>m;for(int i=0;i<n;i++) cin>>a[i];int ans=0;int t=0;for(int i=0;i<n;i++){if(t+a[i]>m) ans++,t=a[i];else t+=a[i];}cout<<ans+1<<endl;} }3782. 點【難度: 中 / 知識點: 數學 推式子】
3783. 第 k 個除數【難度: 一般 / 知識點: 數學 求因子】
能夠整除n,指的是n%x==0 x 既可以整除n
3784. 交換相鄰元素【難度: 一般 / 知識點: 思維題】
#include<bits/stdc++.h> using namespace std; const int N=1e5*2+10; int n; string s; int main(void) {cin>>n;vector<int>ve(n+1,0);for(int i=1;i<=n;i++) cin>>ve[i];cin>>s;s="0"+s;for(int i=1;i<n;i++){if(s[i]=='0'&&ve[i]!=i)//如果當前位置是0且不是對應的位置,則一定不行{puts("NO");return 0;}if(s[i]=='1'){int minv=1e9;int maxv=-1e9;int j=i;while(s[j]=='1'){minv=min(minv,ve[j]);maxv=max(maxv,ve[j]);j++;}minv=min(minv,ve[j]);maxv=max(maxv,ve[j]);if(maxv-minv!=j-i)//不是連續的{puts("NO");return 0;}i=j;}}puts("YES");return 0; } #include<bits/stdc++.h> using namespace std; const int N=1e5*2+10; int n; string s; int main(void) {cin>>n;vector<int>ve(n+1,0);for(int i=1;i<=n;i++) cin>>ve[i];cin>>s;s="0"+s;for(int i=1,t=0;i<n;i++){t=max(t,ve[i]);if(s[i]=='0'&&t!=i)//如果當前位置是0,且當前的最大值不是對應的位置,則一定不行{puts("NO");return 0;}}puts("YES");return 0; }3785. 戰艦 【難度: 一般 / 知識點: 枚舉】
題目問的意思是,所有的合法方案中,哪個格子占了最多的次數。
直接枚舉每一個格子,求每個格子占用的次數。
總結
以上是生活随笔為你收集整理的2021暑假每日一题 【week4 完结】的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2021暑假每日一题 【week5 完结
- 下一篇: 第二章 搜索 【未完结】