CCPC-Wannafly Winter Camp Div2 Day2 自闭总结

CCPC-Wannafly Winter Camp Day1 (Div2, onsite)
今天学了首歌

菜鸟泪

题目看错整场错
投身竞赛为了生活
菜鸡也是人
AC不了向谁说
为了奖牌的逼迫
颗颗泪水往肚吞落
难道这是命
注定一生在那铁牌过
题目T呀T WAWA又CE
智商早已酒中泡
夜夜CFTC WA 了
又是谁的错 谁叫我是一个菜鸡

题目看错整场错
投身竞赛为了生活
菜鸡也是人
AC不了向谁说
为了奖牌的逼迫
颗颗泪水往肚吞落
难道这是命
注定一生在那铁牌过
题目T呀T WAWA又CE
智商早已酒中泡
夜夜CFTC WA 了
又是谁的错 谁叫我是一个菜鸡
#
A题题意是n个有序数连接在一起,删去(n-2)个,使剩下两个数连接所成的数最大。
经过讨论,发现最大的数一定会构成答案,故以此数为基石,向两边取次大的两数,构造大数后比较。由于ai的范围是在1~109,会爆long long ,所以可以了考虑使用_int28
我们队采用了不连接的办法,用字符串处理。

#include
using namespace std;
long long T,n,mx,frontmx,tailmx;
int l;
unsigned long long ans1,ans2;
struct E{
   long long x,num;
}e[6020];
long long cmp(E x,E y){
   return x.x<y.x;
}
long long pow(long long ss,int kk){
   long long ret=ss;
   for(int i=1;i<=kk-1;i++){
   	ret*=ss;
   }
   return ret;
}
int main(){
   scanf("%d",&T);
   for(int j=1;j<=T;j++){
   	scanf("%d",&n);
   	for(int i=1;i<=n;i++){
   		scanf("%lld",&e[i].x);
   		e[i].num=i;
   	}
   	sort(e+1,e+1+n,cmp);
   	mx=e[n].x;
   	for(l=1;mx!=0;l++){
   		mx/=10;
   	}
   	l--;
   	int ll=l;
   	long long ch=pow(10,l-1);
   	if(e[n-1].x==e[n].x){
   		printf("Case #%d: %lld%lld\n",j,e[n-1].x,e[n].x);
   		continue;
   	}
   	while(e[n-1].x/ch<=0){
   		ch/=10;
   		l--;
   	}
   	frontmx=-1,tailmx=-1;
   	for(int i=1;i<=n-1;i++){
   		if(e[i].num<e[n].num&&e[i].x/ch>0){
   			frontmx=max(frontmx,e[i].x);
   		}
   		else if(e[i].num>e[n].num&&e[i].x/ch>0){
   			tailmx=max(tailmx,e[i].x);
   		}
   	}
   	ans1=0,ans2=0;
   	string s1,s2;
   	if(frontmx!=-1) s1=to_string(frontmx)+to_string(e[n].x);
   	else{
   		s1="";
   	}
   	if(tailmx!=-1) s2=to_string(e[n].x)+to_string(tailmx);
   	else{
   		s2="";
   	}
   	cout<<"Case #"<<j<<": "<<(s1>s2?s1:s2)<<endl;
   	
   }
   return 0;
}

B题类似 但是我8会

H题 计算几何。给一个大球和若干个小球,求其相交的公共体积。
相交的情况分为三种:

  • 相交圆与圆心距小于R,类似于一个“火箭头”形状(自行想象),公共部分的体积为大球缺减小球缺
  • 相交圆与圆心距小于R,类似以一个“铜锣烧”形状,公共部分的体积为大球缺加小球缺;
  • 小球完全包含于大球。

k题for预处理+dp(任然8会)

你可能感兴趣的:(比赛总结)