NYIST-2017 대학교 1학년 신입생 첫 주전 문제풀이

경기 링크:https://cn.vjudge.net/contest/191248암호:nyist
약교 신입생 문제풀이, 큰 소는 속히 떠나라~

A - Thickest Burger


출력 A*2+B 및 A+B*2 큰 1개
#include
int max(int a,int b)
{
    if(a>b)
        return a;
    else
        return b;
}
int main()
{
    int t,a,b;
    scanf("%d",&t);
    while(t--)
    {
        scanf("%d%d",&a,&b);
        printf("%d
"
,max(a*2+b,a+b*2)); } return 0; }

B - Relative atomic mass


직접 계산하면 된다
#include
#include
using namespace std;
char s[20];
int main()
{
    int t,a,b;
    scanf("%d",&t);
    while(t--)
    {
        scanf("%s",s);
        int len=strlen(s);
        int sum=0;
        for(int i=0; iif(s[i]=='C')
                sum+=12;
            if(s[i]=='H')
                sum+=1;
            if(s[i]=='O')
                sum+=16;
        }
        printf("%d
"
,sum); } return 0; }

C - 분할 소수 및


소수를 판단하는 함수를 쓰면 직접적으로 폭력을 행사하면 된다
#include
#include
int prime(int x)
{
    int i,flag=1;
    for(i=2; i<=sqrt(x); i++)
    {
        if(x%i==0)
            flag=0;
    }
    return flag;
}
int main()
{
    int n,i,j;
    while(scanf("%d",&n)!=0&&n)
    {
        j=0;
        for(i=2; i2; i++)
        {
            if(prime(i)&&prime(n-i))
                j++;
        }
        printf("%d
"
,j); } return 0; }

D - 소명 A+B


계산할 수 에 대해 100 을 직접 맞추면 된다
#include
int main()
{
    int a,b,c,d,n;
    scanf("%d",&n);
    while(n--)
    {
        scanf("%d%d",&a,&b);
        c=a%100;
        d=b%100;
        printf("%d
"
,(c+d)%100); } }

E - 정수 풀이


매거 를 통해 폭력적 으로 물 을 건널 수 있다
#include
int main()
{
    int n,m;
    while(scanf("%d%d",&m,&n)!=EOF)
    {
        if(m==0&&n==0)
            return 0;
        int flag=0;
        for(int i=-1000; i<=10000; i++)
        {
            if(i*(m-i)==n)
            {
                printf("Yes
"
); flag=1; break; } } if(flag==0) printf("No
"
); } return 0; }

F - 단어 찾기


우리는 문제를 다중 배낭의 사고방식으로 바꾸어 이해한다.
우선 다중 가방의 일반적인 정의를 살펴보자. N가지 아이템과 V용량의 가방이 있다.i종 물품은 최대 n[i]건이 사용 가능하며, 매 물건의 무게는 c[i]이며, 가치는 w[i]이다.어떤 물품을 가방에 넣으면 이 물품의 비용 총계가 가방 용량을 초과하지 않고 가치 총계가 가장 클 수 있는지 구해 보세요.
이 제목 안에는 26개의 물품이 있고 가방의 용량은 50이다. 모든 물품의 수량 제목은 이미 제시되었다. 이제 모든 물품의 무게만 남았다. 우리는 알파벳의 표지 1-26로 대체할 수 있다.
먼저 상태를 정의한다: dp[i][j]는 i개의 자모가 있고 총 가치가 j일 때 조건에 부합되는 단어의 수량을 우리는 상태 이동 방정식을 얻을 수 있다.
dp[i][j]+=dp[i−1][j−k∗w[i]]
#include 
#include 
int dp[55][55];
int w[30],num[30];
int main()
{
    int t;
    scanf("%d",&t);
    while(t--)
    {
        memset(dp,0,sizeof(dp));
        memset(w,0,sizeof(w));
        for(int i=1; i<=26; i++)
        {
            w[i]=i;
            scanf("%d",&num[i]);
        }
        dp[0][0]=1;
        for(int i=1; i<=26; i++)
            for(int j=0; j<=50; j++)
                for(int k=0; k<=num[i]&&k*w[i]<=j; k++)//k       ,w[i]       
                    dp[i][j]+=dp[i-1][j-k*w[i]];
        int ans=0;
        for(int i=1; i<=50; i++)
            ans+=dp[26][i];
        printf("%d
"
,ans); } return 0; }

G - 협각 크기 II


우리가 배운 벡터의 지식을 되돌아보고, 두 변을 이용하여 협각을 계산하다
cosC=x1∗x2+y1∗y2x21+y21−−−−−−√∗x22+y22−−−−−−√
#include 
#include 
#define PI 3.1415926535;
int main()
{
    double x1,x2,y1,y2;
    int T;
    double a,b,c;
    while(scanf("%d",&T)!=EOF)
    {
        while(T--)
        {
            scanf("%lf%lf%lf%lf",&x1,&y1,&x2,&y2);
            a=x1*x2+y1*y2;
            b=sqrt(x1*x1+y1*y1)*sqrt(x2*x2+y2*y2);
            c=acos(a/b)/PI;
            c*=180;
            printf("%.2lf
"
,c); } } return 0; }

H. - 짧은 핸드폰 번호.


문자열에 대한 이해를 깊이 있게 하여 문자열을 어떻게 출력할 수 있는지
#include
int main()
{
    int n,i;
    char a[12];
    scanf("%d",&n);
    while(n--)
    {
        scanf("%s",a);
        printf("6%s
"
,a+6); } }

I - C 언어 합법 식별자


c 언어의 합법적인 표지부호가 무엇인지 고찰해 보세요.
#include
#include
char a[66];
int main()
{
    int t;
    scanf("%d",&t);
    getchar();
    while(t--)
    {
        gets(a);
        int l=strlen(a);
        if(a[0]=='_'||(a[0]>='a'&&a[0]<='z')||(a[0]>='A'&&a[0]<='Z'))
        {
            int m=0;
            for(int i=1; iint flag=0;
                if(a[i]=='_'||(a[i]>='a'&&a[i]<='z')||(a[i]>='A'&&a[i]<='Z')||(a[i]>='0'&&a[i]<='9'))
                {
                    flag=1;
                }
                if(flag==0)
                {
                    printf("no
"
); m=1; break; } } if(m==0) printf("yes
"
); } else printf("no
"
); } return 0; }

제이 - 포켓


아날로그 문제, 사람마다 답이 다를 수 있습니다. 코드는 이런 문제만 참고할 수 있습니다. 일반적으로 그림을 보고 규칙을 찾습니다 + 아날로그
#include
#include
char e[85][85];
char op1[2],op2[2];
int main()
{
    int n,T=0;
    while(~scanf("%d %s %s",&n,op1,op2))
    {
        if(T)puts("");
        if(n==1)
        {
            printf("%c
"
,op1[0]); continue; } char x,a=op1[0],b=op2[0]; int tmp=1; if(((n+1)/2)%2==1) { char c=a; a=b; b=c; } while(tmp<=(n+1)/2) { int m=n-tmp+1; if (tmp%2==1)x=b; else x=a; for(int i=tmp; i<=m; i++) { e[tmp][i]=x; e[m][i]=x; e[i][tmp]=x; e[i][m]=x; } tmp++; } e[1][1]=e[n][n]=e[1][n]=e[n][1]=' '; for(int i=1; i<=n; i++) { for(int j=1; j<=n; j++) printf("%c",e[i][j]); puts(""); } T++; } return 0; }

좋은 웹페이지 즐겨찾기