• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
 






种梦想的路

 
 

Powered by 博客园
博客园 | 首页 | 新随笔 | 联系 | 订阅 订阅 | 管理

2012年8月28日

NOIP2011 day1 选择客栈
摘要: 动态规划,设f[i,j]为前i个客栈中色调为j的可行方案,s[i,j]为前i个客栈中可以与之后色调为j的客栈搭配的客栈数,即有s[i,j]个客栈的色调为j,且该客栈与第i个客栈之间有符合条件的咖啡店,v[i]为第i个客栈的最低消费,c[i]为第i个客栈的色调a[i,j]为前i个客栈中色调为j的客栈的数目,则有:if v[i]<=p then s[i,j]:=a[i,j] else s[i,j]:=s[i-1,j];if c[i]<>j then f[i,j]:=f[i-1,j] else f[i,j]:=f[i-1,j]+s[i,j];时间复杂度为O(nk),但是会超空间,所 阅读全文
posted @ 2012-08-28 16:52 种梦想的路 阅读(1128) 评论(0) 推荐(0)
 
NOIP2011 day1 铺地毯
摘要: 简单题,因为只询问一个点,最后铺的地毯一定在最上面,用数组记录每张地毯的信息,然后倒着寻找符合条件的地毯输出即可program carpet;var x,y:longint; n,i,j,ans:integer; a:array[1..10000,1..4] of longint;begin assign(input,'carpet.in'); reset(input); assign(output,'carpet.out'); rewrite(output); fillchar(a,sizeof(a),0); readln(n); for i:=1 to n 阅读全文
posted @ 2012-08-28 16:33 种梦想的路 阅读(176) 评论(0) 推荐(0)
 
NOIP2010 引水入城
摘要: 首先宽搜枚举第一行每一个点,判断能否到达最后一行的每一个点,如果无解则输出,如果有解,深搜记录第一行每一个点所能覆盖到的最左端和最右端(因为每一个点所覆盖到的必是一条线段,证明略),然后贪心求需要的最少点数即可program flow;const dx:array[1..4] of -1..1=(1,-1,0,0); dy:array[1..4] of -1..1=(0,0,1,-1);type node=record x,y:integer; end;var max:longint; s,n,m,ans,i,j,p,q,t,len:integer; f:array[1..500,1..500 阅读全文
posted @ 2012-08-28 16:29 种梦想的路 阅读(587) 评论(0) 推荐(0)
 
NOIP2010 关押罪犯
摘要: 一开始用的是先按怨气值由大到小排序,再判断二分图的方法,但是超时,多次调试未果,只好上网找了题解,下面介绍一个博客上的方法:http://blog.sina.com.cn/s/blog_918b1f91010175i2.htmlprogram prison;type node=record x,y,v:longint; end;var n,m,i,fx,fy:longint; a:array[1..100000] of node; father:array[1..40000] of longint;procedure quick(left,right:longint);var i,j,temp 阅读全文
posted @ 2012-08-28 16:15 种梦想的路 阅读(243) 评论(0) 推荐(0)