zoukankan      html  css  js  c++  java
  • 第七届东南大学短码竞赛初赛 总结

    几句废话

    第一次尝试完全用 Python 答题
    (然后发现了自己的垃圾

    A


    显然答案以 9 为循环节

    exec(int(input())*"print((input()-1)%9+1);")
    

    B


    暴力即可

    exec(int(input())*"s=input();print('NO' if sum([((i&1&(ord(s[i])%2))|(~i&1&~(ord(s[i])%2)))for i in range(len(s))]) else 'YES');")
    

    C

    参见 CF1118C

    def f():
     n=int(input());D=list(map(int,input().split()));a=[[0]*20 for i in range(20)];C=[0]*1007;F=[];R=range((n+1)//2)
     for i in D:C[i]+=1
     for i in R:
      for j in R:
       if(i!=n-i-1)&(j!=n-j-1):F.append((4,(i,j)))
       elif(i!=n-i-1)^(j!=n-j-1):F.append((2,(i,j)))
       else:F.append((1,(i,j)))
     for E in [4,2,1]:
      L=1
      for G in F:
       if G[0]!=E:continue
       while(L<1005)&(C[L]<E):L+=1
       if L==1005:print("NO");return
       i=G[1][0];j=G[1][1];a[i][j]=a[n-i-1][j]=a[i][n-j-1]=a[n-i-1][n-j-1]=L;C[L]-=E
     print("YES")
     for i in range(n):print(*a[i][:n])
    exec(int(input())*"f();")
    

    D


    利用 bisect 模块即可
    注意输出要一起输出,如果边操作变输出就会 T 掉(原因未知)

    from bisect import bisect,insort
    I=input;T=int(I())
    for _ in range(T):
     a=[-1];b=[];q=int(I())
     for i in range(q):
      x,y=map(int,I().split())
      if x<2:insort(a,y)
      else:
       z=bisect(a,y)-1;b+=[a[z]]
       if a[z]>0:del a[z]
     for i in b:print(i)
    

    E

    显然我们可以给出一个 (O(m)) 的拉格朗日插值,做 (k) 次,总复杂度 (O(mk))

    当然也可以写多项式多点求值

    翻译成 python 后的插值至今未调出来

    后记

    第一次参加短码竞赛,策略不当
    以及不知道 from xx import * 这种操作导致的懵逼

  • 相关阅读:
    JavaScript优美的特性
    指尖初体验之主屏幕操作
    XHTML下css+div布局总结
    CSS表常用小技巧
    让两个DIV居中显示
    用CSS做滑动门
    CSS控制文本自动换行
    符合css规范的下拉菜单(兼容ff\ie6\ie7)
    层垂直居中于浏览器
    用css来强制按比例压缩图片的高度或宽度
  • 原文地址:https://www.cnblogs.com/mollnn/p/12686478.html
Copyright © 2011-2022 走看看