一共三道题,做出了前两道
一道水题,一道贪心思想,一道前缀和+dp
出于语文阅读理解能力有限,第三道题没读懂=.=
1.输入一个数,转换成十六进制,看看各个位上有多少个圈。
https://www.acwing.com/problem/content/4379/ 提交了三次,我是蒟蒻
#include<bits/stdc++.h> using namespace std; #define ll long long int main() { //0123456789ABCDEF ll n,a,sum=0; cin>>n; if(n%16==0) sum++; while(n!=0) { a=n%16; if(a==0||a==6||a==9||a==13||a==10) sum++; else if(a==8||a==11) sum+=2; n/=16; } cout<<sum; }
2.一个横长的田地,里面有n个洒水池,看看过多长时间可以全部淹没。
https://www.acwing.com/activity/content/problem/content/6727/ 提交了八次,我是废物,怎么老爱提交==
#include<bits/stdc++.h> using namespace std; #define ll long long ll n,t,a[210],k; int main() { ll i,j,f,m; cin>>t; for(i=1;i<=t;i++) { memset(a,0,sizeof(a)); cin>>n>>k; for(j=1;j<=k;j++) { cin>>f; a[j]=f; } sort(a+1,a+k+1); ll tmax=0; for(m=2;m<=k;m++) { if(a[m]-a[m-1]+1>tmax) tmax=a[m]-a[m-1]+1; } if(tmax%2==1) tmax++; tmax=max(max(a[1],n-a[k]+1),tmax/2); if(tmax==a[1]||tmax==n-a[k]+1) cout<<tmax<<endl; else cout<<tmax<<endl; } }
3.在一堆数中选m个连续的数,其和最大
(描述的很复杂╭(╯^╰)╮)
https://www.acwing.com/problem/content/4381/
附题解 https://www.acwing.com/solution/content/72485/ 有空再看