剛參加完NOIP2017普及,只考了210,於是心生不爽,寫下了這篇解題報告。。。(逃

第一次寫博,望dalao們多多指導啊(膜

第一題score,學完helloworld的人也應該都會吧,之前好多人0分或60分據說是精度炸了,後面不是又重測了麼233

直接給程式碼

#include <stdio.h>
int a,b,c;
double a1,b1,c1;
int main()
{
    scanf("%d %d %d",&a,&b,&c);
    a1=a*0.2;
    b1=b*0.3;
    c1=c*0.5;
    printf("%.lf",a1+b1+c1);
    ;
}

許多人不會像我這麼寫而是除以10再去乘,畢竟都是是的整數倍

第二題librarian,這道題簡單分析就考了個排序+取餘,沒什麼技術含量,可是由於這個萬惡的單詞,有個原本265的大佬沒拼對然後就gg到165,身邊還有一個dalao第三題寫了好多卻只有十五分,然後第二題多打了個0然後記憶體就炸了。。。還有某位-1沒有打\n。。。(同情

也是直接給程式碼吧

#include<stdio.h>
#include<algorithm>
#include<iostream>
using namespace std;
];
int main()
{
    ,ss=;
    scanf("%d%d",&n,&q);
    ;i<n;i++)
        scanf("%d",&a[i]);
        sort(a,a+n);
        ;i<q;i++)
    {
        scanf("%d %d",&b,&c);
        s=;ss=;
        ;j<=b;j++)
            s=s*;
        ;j<n;j++)
        {
            if(a[j]%s==c)
            {
                printf("%d\n",a[j]);
                ss=;
                break;
            }
        }
        )printf("-1\n");
    }
    ;
}

第三題...先給題目吧

這道題當我看題目時感覺挺簡單的,只是覺得是一個普通的dfs+剪枝,可是當真正寫的時候就不知道從何寫,如何剪枝,然後除錯了1小時。。。未果,註釋矣。。。

之後,我寫了一個單純的dfs,純搜,然後水了65分,程式碼如下

#include <stdio.h>
][],x,y,color;
;
void dfs(int x1,int y1,int magic,int money,int w_i_c)//w_i_c=What is the color?
{
    if(x1==m&&y1==m)
    {
        if(money<ans) ans=money;
        return ;
    }
    else
    {
        if(!magic)//當未施展魔法時
        {
            <=m)//判邊界條件
            {
                ][y1]>)//當有顏色時
                {
                    ][y1]) dfs(x1+,y1,,money,-);
                    ][y1]) dfs(x1+,y1,,money+,-);
                }//只需考慮顏色的變換
                ][y1]==) dfs(x1+,y1,,money+,a[x1][y1]);
            }
            <=m)
            {
                ]>)
                {
                    ]) dfs(x1,y1+,,money,-);
                    ]) dfs(x1,y1+,,money+,-);
                }
                ]==) dfs(x1,y1+,,money+,a[x1][y1]);//顏色就為上一個的顏色
            }//同上
        }
        else//當施展過魔法
        {
            ][y1]!=)
            {
                ][y1]==w_i_c) dfs(x1+,y1,,money,-);
                ][y1]!=w_i_c) dfs(x1+,y1,,money+,-);
            }
            ]!=)
            {
                ]==w_i_c) dfs(x1,y1+,,money,-);
                ]!=w_i_c) dfs(x1,y1+,,money+,-);
            }
        }
    }
}
int main()
{
    scanf("%d %d",&m,&n);
    ;i<=n;i++)
    {
        scanf("%d %d %d",&x,&y,&color);
        a[x][y]=color+;//其餘為0表示無色,+1保證非負性
    }
    dfs(,,,,-);//分別代表橫座標,縱座標,是否施展♂過魔♂法,錢,顏色;-1是一個特殊值
    ) printf("-1");//如果達到這個值就代表ans沒有改變,說明到不了終點
    else printf("%d",ans);
    ;
}

第四題說實話沒怎麼看懂...

粘上一個小學生20分的程式碼吧。。。

#include<stdio.h>
]={},dis[]={};
int main()
{
    ,flag,start;
    scanf("%d%d%d",&n,&d,&k);
    ;i<=n;i++)
    {
        scanf("%d%d",&dis[i],&sco[i]);
    }
    ;
    ;i<=n;i++)
    {
        )
        {
            sum+=sco[i];
        }
    }
    if(sum<k)
    {
        printf("-1");
        ;
    }
    flag=;
    )
    {
        sum=;start=;
        ans++;
        if(ans<d)
        {
            ;i<=n;i++)
            {
                &&dis[i]-start>=d-ans&&dis[i]-start<=d+ans)
                {
                    sum+=sco[i];
                    start=dis[i];
                    if(sum>=k)
                    {
                        printf("%d",ans);
                        ;
                    }
                }
            }
        }
        else
        {
            ;i<=n;i++)
            {
                &&dis[i]-start>=&&dis[i]-start<=d+ans)
                {
                    sum+=sco[i];
                    start=dis[i];
                    if(sum>=k)
                    {
                        printf("%d",ans);
                        ;
                    }
                }
            }
        }
    }
}

今天就到這裡,以後我會多多寫博,把自己的意見與大家分享,有不解或志同道合者可以加qq:2396389683,再見