Codeforces Round #324 (Div. 2) A B
比赛地址:http://codeforces.com/contest/586
A题
纯水题,so water ~~
题意:n,m分别是要求的字符串(数据范围太大只能是字符串)和 要求能被整除的数。
就是求一个长度为n的字符串能被m整除,就找找规律咯~ 1能被每个数整除 2-9 能被22222,3333,4444,55555,66666,77777,88888,99999这样的数整除,10能被10000这样的整除
有个小trick,就是当它长度为1的时候,它不可能被10整除,输出“-1”;
AC代码:
#include <stdio.h>
#include <string.h>
#include <algorithm>
#include <math.h>
#define INF 0x3f3f3f3f
using namespace std;
int s1[500],s2[500],ss1[500],ss2[500],r[500];
int main()
{
int n;
while(~scanf("%d",&n))
{
for(int i=1; i<=n-1; i++)
{
scanf("%d",&s1[i]);
}
ss1[n]=0;
for(int i=n-1; i>=1; i--)
{
ss1[i]=ss1[i+1]+s1[i];
}
for(int i=1; i<=n-1; i++)
{
scanf("%d",&s2[i]);
}
ss2[n]=0;
for(int i=n-1; i>=1; i--)
{
ss2[i]=ss2[i+1]+s2[i];
}
for(int i=1; i<=n; i++)
{
scanf("%d",&r[i]);
}
int max1=INF;
int k1;
int vis[500];
memset(vis,0,sizeof(vis));
for(int i=1; i<=n; i++)
{
int sum=0;
sum+=r[i];
sum+=ss2[i];
sum=sum+ss1[1]-ss1[i];
if(sum<max1)
{
k1=i;
max1=sum;
}
}
vis[k1]=1;
int max2=INF;
for(int i=1; i<=n; i++)
{
if(vis[i]==0)
{
int sum=0;
sum+=r[i];
sum+=ss2[i];
sum=sum+ss1[1]-ss1[i];
if(sum<max2)
{
k1=i;
max2=sum;
}
}
}
printf("%d\n",max1+max2);
}
return 0;
}
水题
AC代码:
#include <stdio.h>
#include <string.h>
#include <algorithm>
#include <math.h>
#define INF 0x3f3f3f3f
using namespace std;
int s1[500],s2[500],ss1[500],ss2[500],r[500];
int main()
{
int n;
while(~scanf("%d",&n))
{
for(int i=1; i<=n-1; i++)
{
scanf("%d",&s1[i]);
}
ss1[n]=0;
for(int i=n-1; i>=1; i--)
{
ss1[i]=ss1[i+1]+s1[i];
}
for(int i=1; i<=n-1; i++)
{
scanf("%d",&s2[i]);
}
ss2[n]=0;
for(int i=n-1; i>=1; i--)
{
ss2[i]=ss2[i+1]+s2[i];
}
for(int i=1; i<=n; i++)
{
scanf("%d",&r[i]);
}
int max1=INF;
int k1;
int vis[500];
memset(vis,0,sizeof(vis));
for(int i=1; i<=n; i++)
{
int sum=0;
sum+=r[i];
sum+=ss2[i];
sum=sum+ss1[1]-ss1[i];
if(sum<max1)
{
k1=i;
max1=sum;
}
}
vis[k1]=1;
int max2=INF;
for(int i=1; i<=n; i++)
{
if(vis[i]==0)
{
int sum=0;
sum+=r[i];
sum+=ss2[i];
sum=sum+ss1[1]-ss1[i];
if(sum<max2)
{
k1=i;
max2=sum;
}
}
}
printf("%d\n",max1+max2);
}
return 0;
}

浙公网安备 33010602011771号