恩,OIer这一身份此时已不复存在,一切都已经结束,也没有时间再去考虑更多。
昨晚六点赶到FZU时就应该说是一切的终结,但是今天还是忍不住逛了下OIBH,很多人的BLOG还是引起不少共鸣。但这一切都已过去,都化作回忆,我奋斗过努力过,和朋友们的这些快乐时光绝不会忘记。
花了一个下午收拾房间,书架,一些书舍不得拿去。望着堆在墙角的那些曾经努力的痕迹,依然难以平静。
但路还要走下去,接下来还要更加努力,把挫折化作动力,我一定还能行。虽然OI没能给我多少荣誉,但是让我学会了很多,知识、能力、为人处事,该说再见了,也许,这将会是永别。
月度归档: 2009 年 11 月
The OS…
The End..
2009.11.09,恩,距离NOIP2009只有2天不到了。。。。
顾不上再去考虑其他什么的,就快要结束了。。。。。。。。
这几天的训练重在交流,而非单纯的闷头做题了,当然,明天就是稍微归纳整理,还有答疑了。
在BOSS的要求下,我、ZJF、ZWT配合WJX帮忙组织高一新同学的训练。
当然,基本上就是出题+每天的讨论和讲评了。
今年的气氛确实不同,以往的讲评基本是随便说几句了事,感觉帮助不大,今年也许带上了新生,所以大家兴致似乎都挺高?
昨天角星神牛各位认真的为精选出的题目做了讲稿PPT,真是好久没看到他如此这般认真了。题目质量也还不错,个别题目部分数据有错就是了(因为数据不是他准备了= =)
几个人非常用心的为今天准备的临考前的最后一次模拟题,一题送分,一题技巧,一题搜索剪枝,一题动归,很传统的组合,题目质量还不错,虽说只是成题改编加强了下。
比较囧的是这几天上午的题目都让我来讲评= =
今天下午感觉有些不是很舒服,也许是机房暖气开了以后太闷了,睡了好久 T_T
还被大牛和萎缩的“校长”给偷拍了(喂)
明天最后一天了,大家加油吧。。
The Wave !!
早上起来开邮箱,收到一个新邮件。。
当初只是不经意的在谷歌的测试申请上填了个表,不报任何希望,没想到居然让我收到了。。。
惨剧
其实早就料到这是非常难熬的一天。。。。。。但没料到攻击者会是如此不择手段。。。。
早上的插曲是段长急冲冲跑到班上叫同学去医务室取消毒水,然后静止使用楼层WC。
然后说隔壁班有一甲流确诊。。。。。当然,在消毒水的熏陶下。。同学们上课的心情久久不能平静(喂,别乱用词)
VJ机房搬迁后算是恢复了,没想到下午开始再次访问困难,最后被确定为大流量DDos攻击,而且虽然主要目标是VJ,但是造成一整个机柜都几乎断网,紫田也好是尴尬,当然,一方面等着紫田恢复,另一方面,冯一继续做着准备工作,由于到了6点还未恢复,只能启用备用方案,就是让Conan自家电脑做服务器,架设临时版本用于比赛,当然,在我出门前,一切都还正常,于是都还没在意,回家之后问起Conan,得到的答复是他目前整个小区网络访问困难,换IP也没用,而这时确认紫田那边已经恢复正常,因此已经肯定这次目标非常明确有针对性。至于是冲着VJ还是CSAPC,这都不好说。
这几天实在太乱了,看来该适当调整一下了。
解决Vijos大规模输入输出的BUG!
撒花~~~
[转]IIS7.5中神秘的ApplicationPoolIdentity
IIS7.5中(仅win7,win2008 SP2,win2008 R2支持),应用程序池的运行帐号,除了指定为LocalService,LocalSystem,NetWorkService这三种基本类型外,还新增了一种ApplicationPoolIdentify
win7的官方帮助上是这么说的:
ApplicationPoolIdentity – 默认情况下,选择“应用程序池标识”帐户。启动应用程序池时动态创建“应用程序池标识”帐户,因此,此帐户对于您的应用程序来说是最安全的。
也就是说"ApplicationPoolIdentity"帐号是系统动态创建的“虚拟”帐号(说它是虚拟的,是因为在用户管理里看不到该用户或用户组,在命令行下输入net user也无法显示,但该帐号又是确实存在的)
如何验证该帐号确实是存在的的?打开任务管理器,观察一下:
w3wp.exe即iis进程,上图中高亮部分表明该iis进程正在以帐号luckty运行(注意这里的luckty即为上图中的应用程序池名称)
好了,搞清楚这个有什么用?
先来做一个测试,比如我们在iis里新建一个站点,主目录设置为c:\2\,应用程序池就指定刚才图中的luckty
假如我们在该站点的default.aspx.cs里写入这样一行代码 :
File.AppendAllText("C:\\TestDir\\1.txt",DateTime.Now.ToString());
前提是c盘必须先建一个目录TestDir,同时除Administrator,System保留完全控制权外,其它帐号的权限都删除掉
运行后,会提示异常: 对路径“C:\TestDir\1.txt”的访问被拒绝。
原因很明显:该站点运行时是以应用程序池(luckty)对应的虚拟帐号运行的,而这个虚拟帐号不具备c:\TestDir的访问权限
这种情况在web服务器(iis6)安全配置中很常见,比如我们把图片上传目录,常常放在主目录之外,同时以虚拟目录形式挂于站点之下,另外在IIS6中不指定该目录任何执行权限 ,这样即使有人非法上传了asp/aspx木马上去,也无法运行搞不成破坏!
言归正传,要想让那一行测试代码正常运行,解决办法很简单,把虚拟帐号的权限加入文件夹安全权限中即可,但是问题来了:这个虚拟帐号我们是不可见的,如果你直接添加名为luckty的用户到文件夹安全帐号里,根本通不过(提示找不到luckty用户),说明这个虚拟帐号名称并不是"luckty"
关键:手动输入 IIS AppPool\luckty (即IIS AppPool\应用程序池名),再确定,这回ok了.
当然除了用"IIS AppPool\应用程序池名"外,windows内部还有一个特殊的用户组Authenticated Users,把这个组加入TestDir的安全权限帐号里也可以,不过个人觉得没有"IIS AppPool\应用程序池名"来得精确.
结束语:
IIS7.5的虚拟帐号设计确实很棒,想想传统IIS6的时候,为了把同一服务器上的各站点权限分开(以防止木马捣乱),不得不创建一堆iuser_XXX,iwam_XXX帐号并指定密码,再一个个站点分配过去,累死人!而虚拟帐号设计则让这类管理轻松多了,也不用担心密码过于简单或过期问题。So,还在等什么,赶紧升级到win7/win2008 R2吧!
Inazuma 11 – 58 截图





























































































































该怎么样就怎么样吧
昨晚的模拟赛,因为赛前出了一些问题,让人担心了一下,于是lk不在,帮他看了一会儿,顺利开始以后,于是我也开始看题
然后回家前和同学们讨论一下,本来以为没啥问题,然后就去关机房,上警报,顺便把没做的题目答应下,然后准备回家的时候,
前面机房同学跑过来和我说VJ挂了,我以为只是被关机或者重启,比赛lk负责值班,他直接怎么解决了,就没管了,回家了,
由于太累,基本上一到家去奔床睡觉了,以至于第二天早上发现有未接来电。
早上到学校发现VJ还没好,不知道怎么回事,然后同学问起,我就说先做其他题库吧。
后面lk找我,才发现,和上次NOIP初赛前挂掉如出一辙,服务器遭到恶意攻击,最后要重装系统,然后换个IP才能解决,
于是换IP还没啥,重装系统的话,一堆软件要装,还要配置目录权限,简直orz。。。。。
然后似乎IIS很不稳定,但是不绑定www的话,就很稳定,目前原因不明。
于是,对于CSAPC反倒有些没底,[face73],摊手吧。再出问题我也没辙了。
USACO/contact
这题难得有感觉,于是就把思路写下来。
因为串只有0和1,所以可以转为二进制来做。
因为有前导0,所以要记录位数。
每读入一位就做一次,而t数组是用来控制长度的。
于是程序如下:
{
ID:smdcnne1
PROG:contact
LANG:PASCAL
}
type _ans=record
x:longint;
s:string;
end;
var tot,i,j,k,l,m,a,b,n,g,last,p:longint;
st:ansistring; ch:char;
x:array[1..12]of longint;
f:array[1..12,0..10000]of longint;
t:array[1..12]of integer;
ans:array[0..50000]of _ans;
procedure qsort(l,r:longint);
var i,j:longint;x:_ans;
begin
i:=l;j:=r;x:=ans[(l+r)shr 1];
repeat
while (ans[i].x>x.x)or
((ans[i].x=x.x)and(length(ans[i].s)
((ans[j].x=x.x)and(length(ans[j].s)=length(x.s))and(ans[j].s>x.s))
do dec(j);
if i< =j then
begin
ans[0]:=ans[i];ans[i]:=ans[j];ans[j]:=ans[0];
inc(i);dec(j);
end;
until i>=j;
if i
end;
begin
assign(input,'contact.in');
assign(output,'contact.out');
reset(input);rewrite(output);
readln(a,b,n);
st:='';
for i:=a to b do t[i]:=(1 shl (i-1))-1;
read(ch); l:=0;
repeat
if ch in ['0'..'1'] then begin
inc(l);
for i:=a to b do
begin
x[i]:=x[i] and t[i];
x[i]:=x[i]*2+ord(ch)-ord('0');
if l>=i then inc(f[i,x[i]]);
end; end;
read(ch);
until eof;
tot:=0;
for i:=a to b do
begin
for j:=0 to (1 shl i)-1 do
begin
if f[i,j]>0 then
begin
inc(tot);
ans[tot].s:='';
ans[tot].x:=f[i,j];
g:=j;
for k:=1 to i do
begin
if (g and 1)>0 then ans[tot].s:='1'+ans[tot].s else ans[tot].s:='0'+ans[tot].s;
g:=g shr 1;
end;
end;
end;
end;
qsort(1,tot);
i:=1;
repeat
if ans[i].x<>last then
begin
dec(n);
if n>=0 then begin if i>1 then writeln; writeln(ans[i].x);
write(ans[i].s);
last:=ans[i].x; p:=1; end;
end else begin
inc(p);
if p mod 6=1 then begin writeln;write(ans[i].s)end else
write(' ',ans[i].s);
end;
inc(i);
until (n<0)or(i>tot);
writeln;
close(input);close(output);
end.