考试总结 2018-5-22

  第一次正规的多校训练赛,由于多种原因考的非常差,30分。

  第一题是一道数论题,应该属于很简单的那种,打几个if就行。然后就写了一个暴力版本找规律:

  

  以对角线为界,下面的都是1赢,下面的都是2赢。而对角线上的情况则是a%2==1是a赢,a%2==0时b赢。

  而我考试结束的时候的版本没有删掉freopen,对于样例是对的(不知道为啥就对了),而评测的时候会爆零,因为不需要用(说好的OI赛制)。并且删了freopen之后还是不能AC,因为我用的是cin,读入会炸(万恶的出题人卡快读) 。把这俩问题都改了就能AC了。

using namespace std;
int n,a,b;
int read()
{
  int x=0;char ch=getchar();
  while(ch>'9'||ch<'0')  ch=getchar();
  while(ch>='0'&&ch<='9') {x=(x<<1)+(x<<3)+ch-'0';ch=getchar();}
  return x;
}
int main()
{

    n=read();
    while(n!=0)
    {
        n=n-1;
        a=read();b=read();
        if(a>b)
        {
            printf("AWaDa!");
            printf("\n");
            continue;
        }
        if(a<b)
        {
            printf("AKTang!");
            printf("\n");
            continue;
        }
        if(a%2==1)
        {
            printf("AWaDa!");
            printf("\n");
        }
        else
        {
            cout<<"AKTang!"<<endl;
            printf("\n");
        }
    }
    return 0;
}
t1

  本题得了0分。

  第二题是一道贪心的题目,放置最少的点使得每个区间上都存在点。那么按照右端点为第一关键字排序,每次都放在当前不能炸掉的桥的右端点,一定是最优解。然后再把能炸掉的都炸掉(放过去),再做一次决策。

  考虑到第一题,这道题也加入了快读。

using namespace std;
int n,t,i,now,ans;
int read()
{
  int x=0;char ch=getchar();
  while(ch>'9'||ch<'0')  ch=getchar();
  while(ch>='0'&&ch<='9') {x=(x<<1)+(x<<3)+ch-'0';ch=getchar();}
  return x;
}
struct ppp
{
    int a,b;
}o[100010];
bool mycmp(ppp x,ppp y)
{
    if(x.b==y.b)return x.a<y.a;
    
    return x.b<y.b;
}
int main()
{
ios::sync_with_stdio(false);
    n=read();
    for(i=1;i<=n;i++)
    {
        o[i].a=read();
        o[i].b=read();
        t=read();
    }
    sort(o+1,o+1+n,mycmp);
    for(now=1;now<=n;)
    {
        ans++;
        t=o[now].b;
        while(o[now].a<=t&&now<=n)
        {
            now++;
        }
    }
    cout<<ans;
    return 0;
}
t2

  用了我在考试的时候还没有改数组大小,导致只拿了30分。

  第三题是一个最短路的问题,还算是裸吧(连我都会),对于两个星球做一次最短路,然后判断两个端点用哪个更近。然后就开始写dijkstra,调试的快吐了(当时就发誓考完后一定好好学图论)。

#include<iostream>
#include<algorithm>
#include<string>
#include<cstring>
#include<cstdio>
#include<cmath>
#include<iomanip>
using namespace std;
int n,m,sum,a[10010][10010],dis[10010];
int read()
{
  int x=0;char ch=getchar();
  while(ch>'9'||ch<'0')  ch=getchar();
  while(ch>='0'&&ch<='9') {x=(x<<1)+(x<<3)+ch-'0';ch=getchar();}
  return x;
}
struct ppp
{
    int u,v,w;
    int ans[5];
}x[10010],y[10010];
bool vis[10010];
void d(int st)
{
    for(int i=1;i<=n+3;i++)
        dis[i]=a[i][st];
    memset(vis,0,sizeof(vis));
    vis[st]=1;dis[st]=0;
    for(int i=1;i<n+3;i++)
    {
        int minn=100000000;
        int k=0;
        for(int j=1;j<=n+3;j++)
        if((!vis[j])&&dis[j]<minn)
        {
        minn=dis[j];                
        k=j;    
    }
    if(k==0)return;
    vis[k]=1;
    for(int j=1;j<=n+3;j++)
        if((!vis[j])&&(dis[k]+a[k][j]<dis[j]))
            dis[j]=dis[k]+a[k][j];
    }
}
int main()
{
    n=read();
    m=read();
    sum=read();
    for(int i=0;i<=n+5;i++)
        for(int f=0;f<=n+5;f++)
            a[i][f]=a[f][i]=100010;
    for(int i=1;i<=m;i++)
    {
        x[i].u=read();
        x[i].v=read();
        x[i].w=read();
        a[x[i].u][x[i].v]=a[x[i].v][x[i].u]=min(a[x[i].v][x[i].u],x[i].w);
    }
    for(int i=1;i<=sum;i++)
    {
        y[i].u=read();
        y[i].v=read();
        y[i].w=read();
        a[y[i].u][y[i].v]=a[y[i].v][y[i].u]=min(a[y[i].v][y[i].u],y[i].w);
    }
////////////////////////////////////////////
    d(n+1);
    for(int i=1;i<=m;i++)
    {
        x[i].ans[1]=dis[x[i].u];        
        x[i].ans[3]=dis[x[i].v];
    }
//////////////////////////////////    
    d(n+2);
    for(int i=1;i<=m;i++)
    {
        x[i].ans[4]=dis[x[i].u];
        x[i].ans[2]=dis[x[i].v];
        x[i].ans[0]=min(x[i].ans[1]+x[i].ans[2],x[i].ans[3]+x[i].ans[4])+x[i].w;
        if(x[i].ans[0]>100010)
        {
            printf("GG");
        }
        else
            printf("%d",x[i].ans[0]);
        printf("\n");
    }
}
t3

  考试的时候还没有把自己的代码放上去,只放了个样例,就很气了。

  第四题还没写完就结束了。。。。

  本次考试非常爆炸,如果让我把代码换一下的话大概可以拿到200多一点。以后我一定要每道题都写快读,不用freopen,好好学图论,争取下次考试拿到高分。

  

 

posted @ 2018-05-23 12:00  zzuqy  阅读(123)  评论(0编辑  收藏  举报