Codeforces Round #230 (Div. 2)

来源:互联网 发布:湖北大数据交易中心 编辑:程序博客网 时间:2024/05/22 02:07

A - Nineteen

题意:给一串字母,问能组成多少个nineteen;

思路:统计个字母的个数,特别注意n,前后可以共用一个


#include<iostream>#include<string>#include<cstdio>using namespace std;int main(){    string a;    int cntn=0,cnti=0,cnte=0,cntt=0;    cin>>a;    for(int i=0;i<a.size();i++)    {        if(a[i]=='n')cntn++;        else if(a[i]=='i')cnti++;        else if(a[i]=='e')cnte++;        else if(a[i]=='t')cntt++;    }    cnte/=3;    int ans=min(cnti,min(cnte,cntt));    while((ans*3>cntn+ans-1)&&ans>0)ans--;    cout<<ans<<endl;    return 0;}

B - Three matrices

思路:A矩阵,为a[i][j]+a[j][i]的一半,B为a[i][j]-A中这个位置的值。


#include<iostream>#include<cstring>#include<cstdio>using namespace std;const int maxn=200;int n,a[maxn][maxn];void PrintA(){    for(int i=1;i<=n;i++)    {        for(int j=1;j<=n;j++)        {            if(j!=1)printf(" ");            printf("%.8f",1.0*(a[i][j]+a[j][i])/2);        }        printf("\n");    }}void PrintB(){    for(int i=1;i<=n;i++)    {        for(int j=1;j<=n;j++)        {            if(j!=1)printf(" ");            if(i==j){printf("0.00000000");continue;}            printf("%.8f",a[i][j]-1.0*(a[i][j]+a[j][i])/2);        }        printf("\n");    }}int main(){    cin>>n;    for(int i=1;i<=n;i++)        for(int j=1;j<=n;j++)        cin>>a[i][j];    PrintA();    PrintB();    return 0;}

C - Blocked Points

题意:

定义两个点为相连的,则:

1,两点间的欧式距离等于1,并且这两点的任意一个点都没有被锁上

2,如果A,B相连,B,C相连,那么A,C相连。

定义特殊点为距离坐标原点的欧式距离不超过n的整数点。

让你锁上一些点,使得任意特殊点不能和任意非特殊点相连。

求出锁得的最少的点。

思路:从外围封锁是最小的。

#include<stdio.h>#include<iostream>#include<algorithm>using namespace std;#define LL long longLL dis(LL x,LL y){    return x*x+y*y;}int main(){    LL n;    LL i,st;    while(scanf("%lld",&n)!=EOF)    {        if(n==0)        {            cout<<"1"<<endl;            continue;        }        LL sum=0,leap;        st=n;        for(i=0;i<=n-1;i++)        {            leap=0;            while(n*n<dis(i+1,st))            {                sum++;                st--;                leap=1;            }            if(leap==0)                sum++;        }        cout<<sum*4<<endl;    }    return 0;}


0 0
原创粉丝点击