一共三道题,做出了前两道

一道水题,一道贪心思想,一道前缀和+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/  有空再看