• 个人简介

    Phigros Phigros

    TOUCH TO START\text{TOUCH TO START}

    </p>

    133011281227\overset{1227}{\underset{1128}{1330}}

    from PIL import Image
    im = Image.open('C:\\Users\\Administrator\\Desktop\\素材\\dtk.bmp')
    pix = im.load()
    
    #==================================================================================
    #功能:判断一个像素的RGB颜色是否被填涂,若被填涂返回True,否则返回False
    #参数:r, g, b为一个像素的RGB颜色值
    def judge_pix(r, g, b): 
        gray=0.299 * r + 0.587 * g + 0.114 * b
        if gray<=150:
            return True
    
    #功能:判断一个信息点是否被前途,若被填涂返回True,否则返回False
    #参数:x, y为该信息点左上角像素的位置信息
    def judge_rec(x, y): 
        w=26
        h=11
        cnt=0
        for i in range(y,y+h):
            for j in range(x,x+w):
                r,g,b=pix[j,i]
                #print(j,i)
                if judge_pix(r,g,b):
                    cnt+=1
        if cnt/w/h>=0.64:
            return True
    
    #功能:传入一列第一个信息点左上角像素位置信息,返回该列填涂的数值
    #参数:x, y为该列第一个信息点左上角像素位置信息
    def judge_col(x, y):
        y_span = 28 #两个纵向相邻信息点的间距
        kh = -1           #存储填涂的考号,若该列没有填涂则返回-1
    	#补充实现后续代码
        while True:
            if judge_rec(10,96+y_span*(kh)):
                return kh
            else:
                kh+=1
                #print(kh)
    #====================================================================================
    
    #设置第一列第一个信息点左上角位置信息
    x0 = 10
    y0 = 96
    x_span = 42  #两个横向相邻信息点的间距
    #补充实现后续代码
    for i in range(0,9):
        print(judge_col(x0+i*x_span,y0),end='')
    
    #include<bits/stdc++.h>
    using namespace std;
    vector<int>v[10010];
    int st[10010],dist[10010];
    int n,m;
    void dfs(int idx){
        for(int i=0;i<v[idx].size();i++){
            int n=v[idx][i];
            if(st[n])continue;
            st[n]=1;
            dist[n]=dist[idx]+1;
            dfs(n);
        }
    }
    int main(){
        cin>>m;
        while(m--){
            int a,b;
            cin>>a>>b;
            v[a].push_back(b);
            v[b].push_back(a);
            n=max(a,b);
        }
        st[1]=1;
        dfs(1);
        int maxx1=0,q;
        for(int i=1;i<=n;i++){
            if(maxx1<dist[i]){
                maxx1=dist[i];
                q=i;
            }
        }
        memset(st,0,sizeof st);
        memset(dist,0,sizeof dist);
        st[q]=1;
        dfs(q);
        int maxx2=0,r;
        for(int i=1;i<=n;i++){
            if(maxx2<dist[i]){
                maxx2=dist[i];
                r=i;
            }
        }
        cout<<maxx2+1;
        return 0;
    }
    
  • 最近活动

    This person is lazy and didn't join any contests or homework.