今天,我又自闭了,A题wa了三页,只是因为一点小错误,我知道我还有很多不足,继续努力吧。

A Erase Numbers Ⅱ

大坑啊,这道题极限数据会爆 long long,比如 n = 2 , a[1] = 1e9 , a[2] = 1e9,我承认我还是太年轻,其实稍微去试一下,就不会wa一下午。

这道题其实真的满水的,找到最大值maxx,和最大值左侧的最大数maxx1,以及最大值右侧的maxx2,然后比较maxx1 maxx和maxx maxx2哪个大就行了。

#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstring>
#include<algorithm>
#include<string>
#define ll unsigned long long
using namespace std;
const int N=6005;
ll v[20];
ll a[N];
int get(ll x)
{
	int ans=0;
	while(x){
		ans++;
		x/=10;
	}
	return ans;
}
int main()
{
	int t;
	cin>>t;
	//ios::sync_with_stdio(false);
	int x=0;
	v[1]=10;
	for(int i=2;i<=11;i++)
	{
		v[i]=v[i-1]*10;
	}
	while(t--)
	{
		x++;
		int n;
		memset(a,0,sizeof(a));
		cin>>n;
		for(int i=1;i<=n;i++)cin>>a[i];
		cout<<"Case #"<<x<<": ";
		ll maxx=0;
		int p;
		for(int i=1;i<=n;i++)
		{
			if(a[i]>=maxx){
				maxx=a[i];
				p=i;
			}
		}
		ll maxx1=0,maxx2=0;
		for(int i=p-1;i>=1;i--)
		{
			if(a[i]>maxx1){
				maxx1=a[i];
			}
		}
		for(int i=p+1;i<=n;i++)
		{
			if(a[i]>maxx2){
				maxx2=a[i];
			}
		}
		ll ans1,ans2;
		int h1=get(maxx);	//这里不能用log10,会RE,但是我不知道为什么
		int h2=get(maxx2);
		ans1=maxx+maxx1*v[h1];
		ans2=maxx2+maxx*v[h2];
		ll ans;
		if(ans1>ans2)ans=ans1;
		else ans=ans2;
		cout<<ans<<endl;
	}
}

B Erase Numbers I

unsolved

C Fibonacci Strikes Back

unsolved

D Honeycomb

unsolved

E Power of Function

unsolved

F Quicksort

unsolved

G Linear Congruential Generator

unsolved

H Honeycomb

球缺的体积公式为
$$ V=\pi H^2 (R-\frac
{3}) $$
推导很简单,就是一个不完整的圆绕y轴旋转所成的体积,从 R - H 到 R 对 y 积分求体积,整理一下就可以了。

知道该如何求球缺体积后,对于每课行星,只需要求一下行星和大球的球缺的体积,再把他们减去就可以了。

unsolved

I Square Subsequences

unsolved

J Square Substrings

unsolved

K Sticks

unsolved

L Pyramid

unsolved