首页 > 代码库 > BZOJ 3668:起床困难综合症(贪心)
BZOJ 3668:起床困难综合症(贪心)
分析:按位贪心即可。
program sleep; var a,g:array[0..150000]of longint; n,i,m,ans,t,len,x,y,v:longint; c:char; s:string; e:boolean; function cheak(x,y:longint):longint; var i:longint; begin for i:=1 to n do begin if g[i]=1 then x:=x and (a[i] shr (y-1) and 1); if g[i]=2 then x:=x or (a[i] shr (y-1) and 1); if g[i]=3 then x:=x xor (a[i] shr (y-1) and 1); end; exit(x); end; begin assign(input,‘sleep.in‘); reset(input); assign(output,‘sleep.out‘); rewrite(output); readln(n,m); for i:=1 to n do begin readln(s); t:=pos(‘ ‘,s); c:=s[1]; if c=‘A‘ then g[i]:=1; if c=‘O‘ then g[i]:=2; if c=‘X‘ then g[i]:=3; val(copy(s,t+1,length(s)-t),a[i]); end; ans:=0; e:=false; for i:=30 downto 1 do begin if cheak(0,i)=1 then begin x:=0; y:=1; end else if cheak(1,i)=1 then begin if (e=false)and(m shr (i-1)=0) then begin x:=0; y:=0; end else begin x:=1; y:=1; end; end else begin x:=0; y:=0; end; v:=v+x*(1 shl (i-1)); ans:=ans+y*(1 shl (i-1)); if v<m shr (i-1) then e:=true; end; writeln(ans); close(input); close(output); end.
BZOJ 3668:起床困难综合症(贪心)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。