SWUST大二周赛 之农夫山泉有点甜

453人阅读 评论(0)

#include<stdio.h>
#include<iostream>
#include<algorithm>
#include<string.h>
#include<math.h>
using namespace std;

#define ll long long
int main()
{
int n;
ll xmi,xma,ymi,yma;
while(~scanf("%d",&n))
{
ll x,y;
scanf("%lld%lld",&x,&y);
xmi=x; xma=x; ymi=y; yma=y;
while(--n)
{
scanf("%lld%lld",&x,&y);
xmi=min(xmi,x);
xma=max(xma,x);
ymi=min(ymi,y);
yma=max(yma,y);
}
ll ans=max(xma-xmi,yma-ymi);
printf("%lld\n",ans*ans);
}
return 0;
}

#include<stdio.h>
#include<iostream>
#include<algorithm>
#include<string.h>
#include<queue>
#include<math.h>
using namespace std;

#define ll long long
ll f[33];
ll solve(ll x)
{
if(x==0) return 0;
ll z=1,sum=1;
while(x>=z)
{
sum*=3;
z*=2;
}
return sum/3+2*solve(x-z/2);
}

void init()
{
int i;
f[0]=1;
for(int i=1;i<=30;i++)
f[i]=f[i-1]*2;
}
int main()
{
ll n,t,ans,k,a,b,num=0;
scanf("%lld",&t);
init();
while(t--)
{
scanf("%lld%lld%lld",&k,&a,&b);
num++;
a=f[k]-a+1;
b=f[k]-b+1;
ans=solve(a)-solve(b-1);
printf("Case %lld: %lld\n",num,ans);
}
return 0;
}


#include<stdio.h>
#include<iostream>
#include<algorithm>
#include<string.h>
#include<queue>
#include<math.h>
using namespace std;

#define ll long long
#define nn 500500
struct node
{
int next[2];
int num,len;
void init()
{
memset(next,-1,sizeof(next));
num=len=0;
}
}tree[nn];
char s[220];
int tot,t,n;

void insert(char *s)
{
int p=0;
int l=strlen(s);
int id;
for(int i=0;i<l;i++)
{
id=s[i]-'0';
if(tree[p].next[id]==-1)
{
tree[p].next[id]=t;
tree[t].init();
tree[t++].len=tree[p].len+1;
}
p=tree[p].next[id];
tree[p].num++;
}
}
int query()
{
int ans=0;
queue<int>q;
q.push(0);
while(!q.empty())
{
int x=q.front();
q.pop();
ans=max(ans,tree[x].num*tree[x].len);
for(int i=0;i<2;i++)
{
if(tree[x].next[i]!=-1)
q.push(tree[x].next[i]);
}
}
return ans;
}
int main()
{
scanf("%d",&tot);
while(tot--)
{
scanf("%d",&n);
t=0;
tree[t++].init();
for(int i=0;i<n;i++)
{
scanf("%s",s);
insert(s);
}
int ans=query();
printf("%d\n",ans);
}
return 0;
}


#include<stdio.h>
#include<iostream>
#include<algorithm>
#include<string.h>
#include<math.h>
using namespace std;

#define ll long long
int main()
{
int a,b;
while(~scanf("%d%d",&a,&b))
{
a-=b;
if(a==0)
{
puts("infinity");
continue;
}
int ans=0,i;
for(i=1;i*i<a;i++)
{
if(a%i==0)
{
if(i>b) ans++;
if(a/i>b) ans++;
}
}
if(i*i==a && i>b) ans++;
printf("%d\n",ans);
}
return 0;
}

#include<stdio.h>
#include<iostream>
#include<algorithm>
#include<string.h>
#include<math.h>
using namespace std;

#define ll long long
int main()
{
int a,b;
while(~scanf("%d%d",&a,&b))
{
int ans=0,c=0;
while(a>0||c>=b)
{
ans+=a;
c+=a;
a=c/b;
c-=a*b;
}
printf("%d\n",ans);
}
return 0;
}

0
0

* 以上用户言论只代表其个人观点，不代表CSDN网站的观点或立场
个人资料
• 访问：13553次
• 积分：831
• 等级：
• 排名：千里之外
• 原创：73篇
• 转载：0篇
• 译文：0篇
• 评论：0条
文章分类
阅读排行