7

来源:互联网 发布:tenga flip hole知乎 编辑:程序博客网 时间:2024/04/30 17:41

又是拖到今天才写昨天的报告。

比赛了。

一开始看修电脑那题,想广搜一下,写了两小时队列没写出来……去看其他题了。

中位数那个题排个序,取中间就过了。

看电视那天因为之前学长讲贪心见过这题,按结束时间排序,统计开始时间不比上一个节目结束时间早的,过了。

模拟火车进站,没模拟出来……

结束了。

代码如下:

#include<stdio.h>
#define N 1002
int a[N],b[N];
int main()
{
    int n,i,j,k;
    while(scanf("%d",&n)!=EOF&&n!=0)
    {
        /*for(i=0;i<n;i++)
        {
            a[i]=0;
            b[i]=0;
        }*/
        while(scanf("%d",&a[1])&&a[1]!=0)
        {
            for(i=2;i<=n;i++)
            {
                scanf("%d",&a[i]);
            }
            i=1;j=1;k=1;
            while((j<=n)&&(i<n+2))
            {
                if(a[j]==i)
                {
                    j++;
                    i++;
                }
                else
                {
                    while(k<n+2)
                    {
                        if(a[j]==b[k-1])
                        {
                            j++;
                            k--;
                            break;
                        }
                        else
                        {
                            b[k]=i;
                            k++;
                            i++;
                        }
                    }
                }
            }
            if(k==1)
            {
                printf("Yes\n");
            }
            else
            {
                printf("No\n");
            }
        }
        printf("\n");
    }
    return 0;
}

#include<stdio.h>#define N 101struct tv{    int s;    int e;};struct tv a[N];void insertion_sort_binary_search(int n){    int i,j,low,high,mid;    struct tv t;    for(i=0;i<n-1;i++)    {        low=0;        high=i;        while(low<=high)        {            mid=(low+high)/2;            if(a[mid].e>a[i+1].e)                high=mid-1;            else                low=mid+1;        }        t=a[i+1];        for(j=i+1;j>low;j--)        {            a[j]=a[j-1];        }        a[low]=t;    }}int main(){    int n,i,r,h,c;    while(scanf("%d",&n)!=EOF&&n>0)    {        for(i=0;i<n;i++)        {            scanf("%d %d",&a[i].s,&a[i].e);        }        insertion_sort_binary_search(n);                h=0;r=1;c=1;        if(n==1)        {            printf("1\n");        }        else        {            while(r<n)            {                if(a[h].e<=a[r].s)                {                    c++;                    h=r;                    r++;                }                else                {                    r++;                }            }            printf("%d\n",c);        }    }    return 0;}

0 0