python    2017-05-04 10:31:40    148    0
  1. # -*- coding:utf-8 -*-
  2. from commands import getstatusoutput as sh
  3. import requests
  4. import bs4
  5. import re
  6. src='F'
  7. tid='2558'
  8. cid='arc073'
  9. pid='d'
  10. url='https://'+cid+'.contest.atcoder.jp/'
  11. s=requests.session()
  12. s.post(url+'login',{'name':'htn','password':sh('')[1]})
  13. soup=bs4.BeautifulSoup(s.get(url+'tasks/'+cid+'_'+pid).content,'html5lib')
  14. input=[sample.parent.next_sibling.string for sample in soup.find_all(text=re.compile(u'入力例'))]
  15. output=[sample.parent.next_sibling.string for sample in soup.find_all(text=re.compile(u'出力例'))]
  16. for i in xrange(len(input)) :
  17. print >> open(src+'.in','w'), input[i],
  18. print >> open(src+'.ans','w'), output[i],
  19. print '入出力例 ', i+1,
  20. if sh('./'+src+'<'+src+'.in>'+src+'.out && diff '+src+'.out '+src+'.ans')[0] != 0 :
  21. print ' ..ERROR'
  22. print 'INPUT: '
  23. print input[i]
  24. print 'OUTPUT: '
  25. print open(src+'.out','r').read()
  26. print 'ANSWER: '
  27. print output[i]
  28. exit()
python html    2017-05-02 19:29:38    10    0
  1. import requests
  2. s=requests.session()
  3. oj='******'
  4. s.post(oj+'ajax/login.php',{'username': 'htn', 'login': 'login', 'password': '******', 'cksave': '0'})
  5. print eval(s.get(oj+'ajax/contest_status_data.php?cid=255').content)['aaData']
  6. import time
  7. while eval(s.get(oj+'ajax/contest_status_data.php?cid=255').content)['aaData'][0][0]=='htn' :
  8. time.sleep(1)
  9. s.post(oj+'ajax/contest_problem_submit.php',{'user_id':'htn','lable':'B','contest_id':'255','language':'1','isshare':'1','login':'Submit','source':open('/home/htn/htn/May/5-1/source/htn/water/water.cpp').read().replace('freopen("water.in","r",stdin);','').replace('freopen("water.out","w",stdout);','')})
bash    2017-04-08 20:16:07    302    1

原版见http://debug18.com/posts/oi-in-linux/
我稍微改了一下,改成自己的风格

于5-18 18:20最后一次更新

  1. black='\033[0;30m'
  2. red='\033[0;31m'
  3. green='\033[0;32m'
  4. brown='\033[0;33m'
  5. blue='\033[0;34m'
  6. purple='\033[0;35m'
  7. cyan='\033[0;36m'
  8. gray='\033[0;37m'
  9. reset='\033[0m'
  10. proname=${1/%-*}
  11. totscore=0
  12. totcase=0
  13. tottime=0
  14. tle=0
  15. re=0
  16. wa=0
  17. for i in $1*; do
  18. if [ -x $i ]; then execute=$i; break; fi
  19. done
  20. if [ "$execute" = "" ]; then
  21. echo -e " ${purple}Could Not Find Executable File${reset}"
  22. exit 1
  23. fi
  24. if [ ! -d test ]; then mkdir test; fi
  25. cd test
  26. cp ../$execute $proname
  27. echo $execute
  28. timelimit=${2:-0}
  29. memorylimit=${3:-0}
  30. if [ $timelimit = 0 ]; then
  31. if [ -f $proname.t.log ]; then
  32. read timelimit < $proname.t.log
  33. else
  34. timelimit=2
  35. fi
  36. fi
  37. if [ $memorylimit = 0 ]; then
  38. if [ -f $proname.m.log ]; then
  39. read memorylimit < $proname.m.log
  40. else
  41. memorylimit=512
  42. fi
  43. fi
  44. echo $timelimit > $proname.t.log
  45. echo $memorylimit > $proname.m.log
  46. if [[ $memorylimit -le 2048 ]]; t
bash    2017-02-24 15:48:18    226    1

之前那版太危险了,现在的这个安全一点
7-12又加了很多文件格式

  1. echo "将会删除当前目录及子目录中所有后缀名不是cpp或py或sh的文件,确定继续?(y/n)"
  2. read -p "it will delete all files in the current directory and all subdirectories except *\.cpp|*\.py|*\.sh ,continue ?(y/n) "
  3. if [[ $REPLY != y ]]; then exit; fi
  4. IFS=$(echo -en "\n\b")
  5. function travel()
  6. {
  7. if [[ $i == *htn* ]]
  8. then
  9. return 1
  10. fi
  11. local c=0
  12. for i in $1/*
  13. do
  14. if [ -d $i ]
  15. then
  16. travel $i
  17. if [ $? != 0 ]
  18. then
  19. c=$(($c+1))
  20. fi
  21. else
  22. if [[ $i == *\.cpp || $i == *\.py || $i == *\.sh || $i == *\.c || $i == *\.pas ]]
  23. then
  24. c=$((c+1))
  25. else
  26. t=$(file -b $i)
  27. if [[ -x $i ||\
  28. $t == Zip* ||\
  29. $t == empty ||\
  30. $t == C\ source* ||\
  31. $t == C++\ source* ||\
  32. $t == ASCII\ text* ||\
  33. $t == PDF\ document* ||\
  34. $t =~ PE32\+?\ executable ||\
  35. $t == GNU\ prof\ performance\ da
emacs    2017-02-02 21:41:56    225    0
  1. (set-background-color "black")
  2. (set-foreground-color "white")
  3. (custom-set-faces
  4. ;; custom-set-faces was added by Custom.
  5. ;; If you edit it by hand, you could mess it up, so be careful.
  6. ;; Your init file should contain only one such instance.
  7. ;; If there is more than one, they won't work right.
  8. '(cursor ((t (:background "green"))))
  9. '(region ((t (:background "slate blue")))))
  10. (setq frame-title-format
  11. (replace-regexp-in-string " " ""
  12. (replace-regexp-in-string "\n" ""
  13. (replace-regexp-in-string "\\(\n$\\|\\|\\[m *\\|\\[[0-9][0-9]m *\\)" "" ; remove trailing linebreak
  14. (shell-command-to-string "fortune-zh")))))
  15. (setq initial-scratch-message
  16. (format "★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★\n\n%s\n\n≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈"
  17. (replace-regexp-in-string "题目:" ""
  18. (replace-regexp-in-string "作者:" " "
  19. (replace-regexp-in-string "作者:" " "
  20. (replace-regexp-in-string "\n" "
lemon    2016-12-31 15:50:14    432    1

正式比赛中要建子文件夹,但lemon不要建,为了避免zxo的悲剧再次发生,之前我和%%%fuboat(颓)了半个下午搞出了这样一个东西。今天考了题答题,于是再去改了一下。

把lemon目录下的assignmentthread.cpp中的116,128,137,350行里的contestantName后面加上+ QDir::separator() + task->getSourceFileName()

qmake lemon.pro && make && ./lemon

这样选手们就要建子文件夹了。

本程序仅供自娱自乐,请勿用于正式场合!!!(Lemon does not have any Sandbox under both Linux and Windows!)

%%%fuboat

记事    2016-12-23 17:29:17    227    0

用了几天时间,我学校电脑里的ubuntu从16.04升到了16.10又升到了17.04(为什么不能一次升完?)好像还下了两次一千多个软件包。。不过完全可以放在后台不用管,尽管有提示不要操作。

升到17.04后

nautilus里文件之间间距变小了
emacs24->emacs25
fortune-zh里不只是唐诗宋词,也有名人名言之类的了,丰富了许多
nautilus里面不能粘贴文件夹……Ctrl-v或右键->粘贴就会闪退……于是我只能cp folder1 folder2 -r

记事 cf    2016-12-15 01:24:36    273    0

round383.div2,12月14号22:35,白俄罗斯人的场

这是我见过最水的cf,以至于我几乎就AK了。

按顺序做下去,做到第四题的时候老是WA,又提示第三题被hack了,非常郁闷。后来发现第三题是没判n=1,赶紧交上去A掉了就锁起想争取hack到别人,结果一个都没hack到。发现第四题傻逼错误,交上去A掉。我还没看第五题,在房间看别人代码……网速好慢。然后去看第五题,发现也并不难,然后A掉。这时我看上去AK了,而且房间第一,总榜第一版,我是十分喜悦的。
然后看第一题好像很多人hack样的,就准备锁掉第一题。我就去看代码,发现我的代码中有好几个惊天大漏洞,竟然还能拿分。赶紧改完锁好后一看别人代码,诶,怎么这么短,好像和我的做法不一样……于是我一脸懵逼地发现我的代码是不仅复杂而且错误的……作了个好死……于是想hack自己,又想hack完后就不能hack别人了,于是一个一个看完别人代码后发现不能hack自己……于是我第一题fst了!!
话说考后我发现rank14那个黑名竟然也fst第一题,而且同时第一题hack了11个人。
离下考还有二十几分钟,我看到有个人第三题写了一大坨不知道搞什么的鬼东西,于是想hack他,手算n=1,终于算出来发现没错……后来实在无聊把他的代码抄下来(- -!)跑n=1..10000看有没有判成无解(只有n=1时无解),意外发现他的程序跑n=8191要跑3秒!兴高采烈地就去hack他,双击那个格子,等那个框框出来,等啊等啊下考啦…………

鉴于以前老是快下考时搞什么东西考完后才搞出来,所以今后的考试我要尽量做到,考试最后十分钟什么都不干。

rank40,AC:BCDE

记事 fun    2016-12-13 21:48:16    334    0

还是遠遠没有达到每天三道的目标啊。

日期 题目 类型
(这不是题解
不是题解!!)
备注 第一次AC
之前的提
交次数
12月24号 改了一晚上题
12月23号 改了一晚上题
12月22号 改了一晚上题+下午考试`for(i=n-1;i>=0;i++)`爆零
12月21号 改了一晚上题
12月20号 搞了一晚上颓
12月19号 2125: 最短路 仙人掌看了题解– –
12月18号
12月17号 2149: 拆迁队 斜率优化
凸包上二分
分治
看了题解– –
2162: 男生女生 二分图
容斥
看了题解– –
4237: 稻草人 分治考试题
lyh讲课
– –
12月16号
12月15号 2137: submultiple 数论0
2134: 单选错位 期望0
12月14号 2160: 拉拉队排练 回文串4
12月13号 2145: 悄悄话 乱搞题1
12月12号 2157: 旅游 傻逼树剖1
12月11号 2144: 跳跳棋 妙啊1
2163: 复杂的大门 妙啊2
12月10号 2173: 整数的lqp拆分 数学99B AC0
2161: 布娃娃 傻逼splay8
12月9号 2131: 免费的馅饼 2
12月8号 嗯这晚我在干什么呢?何爷爷讲计算几何+逛lyy,ydc空间……
12月7号 2150: 部落战争 二分图2
2152: 聪聪可可 傻逼树形dp0
2119: 股市的预测 字符串看了题解3
12月6号 2153: 设计铁路 同10960
2151: 种树 同11503
2143: 飞飞侠 3
12月3号 2118: 墨墨的等式 数学0
2132: 圈地计划 网络流2
2140: 稳定婚姻 二分图3
12月2号 2141: 排队 3
12月1号 2127: happiness 2
11月29号 2126: 排斥反应 计数1
11月28号 2535: [Noi2010]Plane 航空管制2 同21093
2109: [Noi2010]Plane 航空管制 看了题解1
思维题    2016-12-13 21:34:25    138    0

跳跳棋是在一条数轴上进行的。棋子只能摆在整点上。每个点不能摆超过一个棋子。我们用跳跳棋来做一个简单的游戏:棋盘上有3颗棋子,分别在a,b,c这三个位置。我们要通过最少的跳动把他们的位置移动成x,y,z。(棋子是没有区别的)跳动的规则很简单,任意选一颗棋子,对一颗中轴棋子跳动。跳动后两颗棋子距离不变。一次只允许跳过1颗棋子。 写一个程序,首先判断是否可以完成任务。如果可以,输出最少需要的跳动次数。
Input 第一行包含三个整数,表示当前棋子的位置a b c。(互不相同)第二行包含三个整数,表示目标位置x y z。(互不相同)
Output 如果无解,输出一行NO。如果可以到达,第一行输出YES,第二行输出最少步数。
Sample Input
1 2 3 0 3 5
Sample Output
YES 2
【范围】
100% 绝对值不超过10^9











这题很久以前sherco讲树的时候讲过,但是我当时没做。

考虑任意状态的三枚棋子,当两边到中间距离不相等时,总是可以让某一枚棋子往中间跳,还可以把中间的棋子跳往两边。有木有发现这是一颗二叉树!!当相等时则是树根了。

这样此题变成了求lca。我们可以像扩展欧几里得那样快速往根跳,这样就是log的啦。

1/8