zoukankan      html  css  js  c++  java
  • 3.21之前刷题总结

    我太弱了。。。

    [toggle title="太长了只好折叠起来>_<"]

    1293: [SCOI2009]生日礼物

    队列,排序。 按位置排序,依次加入队列。加入一个元素后判断,保证队首颜色只有一种。

    1083: [SCOI2005]繁忙的都市

    最小生成树,水题。

    1237: [SCOI2008]配对

     

    1015: [JSOI2008]星球大战starwar

    离线倒着做并查集。把星球一个个的加入图中。一开始没过是因为有一个i写成x了。。。

    1602: [Usaco2008 Oct]牧场行走

    Lca。 用len[i,k]记录距离:  len[i,j]:=len[i,j-1]+len[p[i,j-1],j-1]; 求lca时顺便求一下距离。最后不要忘了求完lca后a与b同时再往上提一次提到根。

    1854: [Scoi2010]游戏

    二分图匹配。 属性向装备连边。比较特殊的是做到某一次不能匹配时就立刻停止。 注意for i:=1 to m+1 do 因为是输出i-1 所以要到m+1 。 wa了好几次。。。。

    1497: [NOI2006]最大获利

    最大权封闭子图。 站点权为负值,若两点间有收益则新建一个点,权为正收益,向两点连边。 最后求一遍最大权封闭子图就是答案。 因为建图时弄成了long[other[ee]]:=c;而不是0 所以调了好半天。。。

    1565: [NOI2009]植物大战僵尸

    最大权封闭子图。 由被保护的向保护者连有向边。注意因为可能有环,环上的都不可能被吃掉,所以要先用拓扑排序消环。先把所有的边反向,每次选入度为1的点删除,最后被访问过的点加入图中。 由于可能有一个环保护一个点的情况,所以强连通分量是不对的(坑)。

    1088: [SCOI2005]扫雷Mine

    数学,水题。 因为发现前两个格子确定后,后面的都可以确定,所以枚举第一个格子就行了。

    1051: [HAOI2006]受欢迎的牛

    强连通分量。 缩点后,若有一个出度为0的点,则输出点集中点个数。若有多个则impossible。

    1189: [HNOI2007]紧急疏散evacuate

    网络流,spfa,二分答案。

    1296: [SCOI2009]粉刷匠

    动态规划,前缀和。 sum[i,j,1],sum[i,j,0]维护前缀和 f[i,j,k]表示第i行前j个格子刷k次能正确粉刷的最大格子数。ans[i,j]表示前i行刷j次所能正确刷的最大格子数。 f[i,j,k]=max(f[i,j,k]  ,f[i,l,k-1] +  max(sum[i,j,1]-sum[i,l,1] , sum[i,j,0]-sum[i,l,0])); ans[i,j]= max(ans[i,j],ans[i-1,j-k]+f[i,m,k]); L要从0开始循环,wa了2次。

    1230: [Usaco2008 Nov]lites 开关灯

    线段树。 区间修改,xor 1 。

    1193: [HNOI2006]马步距离

     

    1103: [POI2007]大都市meg

    线段树维护dfs序。dfs序中一棵子树对应的区间是连续的一段,我们可以区间修改。

    1050: [HAOI2006]旅行comf

    枚举最小边,然后由小到大向里面加边。直到s,t连通。

    1005: [HNOI2008]明明的烦恼

    树的prufer数列,数学 设没有度数限制的点有m个,有度数限制的点度数为d[i], t:=∑(d[i]-1)。 答案为m^(n-2-t) * C(n-2,t) * t! / 用高精度乘法,除数与被除数每个数分解质因数,排序后相同的消除。

    1003: [ZJOI2006]物流运输trans

    动规,spfa f[i]表示从第一天到第i天最少总成本。 cost[x, y]表示第x天到第y天只用同一运输方案所用的最少成本,spfa预处理得到。 f[i]=min(f[i],f[j]+cost[j+1][i]+k);

    1607: [Usaco2008 Dec]Patting Heads

    p[i]表示i出现了几次。 for j:=1 to ] do  ans:=ans+ p[j] + p[a[i] div j]  (a[i] mod j=0) 加p[a[i] div j]条件是j*j<>a[i]。

    1934: [Shoi2007]Vote 善意的投票

    最大流。 建立S,T,同意的向S连边,不同意的向T连边,朋友之间连边,流量都是1. 跑最小割。

    2783: [JLOI2012]树

    树上倍增。 枚举每个点i,if (now+sum[a,i]<=s) then <倍增>

    2761: [JLOI2011]不重复数字

    平衡树。 水题,先查找有没有这个数,没有就加入。

    2431: [HAOI2009]逆序对数列

    动规,前缀和。 用f[i][j]表示用1~i这些自然数组成的逆序对数为j的数列个数。 f[i][j] = Σ f[i - 1][j - k] (0 <= k < i)  前缀和优化一下sum[i,j]= Σ f[i ][k](0<=k<=j)

    2748: [HAOI2012]音量调节

    大水题。Bool型动规。

    1026: [SCOI2009]windy数

    令f[i][j]为有i位,且第i位(从右数,下同)为j的w数的个数 。

    if abs(j-k)>=2 then f[i,j]:=f[i,j]+f[i-1,k];

    然后计算0—x中的windy数个数(乱搞)

    1031: [JSOI2007]字符加密Cipher

    后缀数组。 复制一段在后面,按sa数组顺序输出字母(sa[i]只取前半个串的)

    1036: [ZJOI2008]树的统计Count

    树链剖分。

    1834: [ZJOI2010]network 网络扩容

    水,最小费油最大流。

    2054: 疯狂的馒头

    并查集。 倒着染色,染过的就不会再染了。 并查集维护哪些染过,一个集合里是一段连续区间,维护区间末尾是哪。 碰到染过的就跳到区间结尾。

    2875: [Noi2012]随机数生成器

    矩阵乘法。 A={c,x0}, b=    快速幂+化乘为加。

    1651: [Usaco2006 Feb]Stall Reservations

    线段树。 初始数列都是0,给一个区间则加上1,最后最大值就是答案。

    1233: [Usaco2009Open]干草堆tower

    1638: [Usaco2007 Mar]Cow Traffic

    求出走到每个点有的方法数a[i],再求出每个点到终点的方法数b[i]。 每条边走的 次数=a[u[i]]*b[v[i]] 。 可以用类spfa按照拓扑序求a[i],把入度为0的点都入栈然后a[e[j]]=a[e[j]]+a[q[h]] 求b[i]可以把边反向重新spfa一遍。

    1208: [HNOI2004]宠物收养所

    平衡树。 abs用到int64时一定要手写!!

    1691: [Usaco2007 Dec]挑剔的美食家

    贪心,平衡树。 商品按照价格排序后贪心。用sbt找小于等于某个数的最大数。

    2252: [2010Beijing wc]矩阵距离

    bfs。 从所有1的点同时广搜,每次同时拓展所有点,ans=拓展次数  

    1047: [HAOI2007]理想的正方形

    dp,单调队列。 求出每个点向上n个数中的最大,最小值。 再在新求出的矩阵中求出每个点向左n个的最大最小值,即每个点左上n*n的矩阵中的最值。

    1989: Bonus 奖励计划

    数学期望。 总费用=所有边的平均费用和 每条边的费用=被优惠且走过的概率*长度,因为长度都是1,所以就是概率。 被优惠且走过的概率=优惠路径中包含这条边的概率*走过这条边的概率。 =(总包含这条边的路径数/总路径数)^2 包含的路径数用两边的点数乘起来就行了。

    2718: [Violet 4]毕业旅行

    二分图匹配。 每个点向能走到的点连边,然后二分图匹配。 用floyd求两点是否能到达。

    1572: [Usaco2009 Open]工作安排Job

    堆,贪心。 按截止时间排序,如果能完成就完成,加入堆中。不能就和最小值比较,若大于最小值就替换掉最小值。

    1638: [Usaco2007 Mar]Cow Traffic

    拓扑序spfa求出走到每个点的方法数f[i],和每个点走到终点的方法数ff[i](建反向图); 每条边次数=f[u[i]]*ff[v[i]]。

    1433: [ZJOI2009]假期的宿舍

    二分图匹配,水。

      1798: [Ahoi2009]维护序列seq

    线段树。 对于每一个乘的标记,若下传时遇到加的标记则加的标记乘上这个值。 每次先下传乘再下传加。 [/toggle]
    ------------------------------------------------------------------------- 花有重开日,人无再少年
  • 相关阅读:
    flutter  安装教程
    使用TcpTrace小工具截获Web Service的SOAP报文
    移除TFS服务器关系
    webservice log4net日志写入失败
    php发送邮件功能(PHPMailer-master插件)
    Unity3d:延迟加载ScrollView的内容
    Unity3d:播放物理目录下的MP3文件
    installshield Basic 工程每次安装完提示重启电脑
    网站背景音乐源码
    Unity3d:加载Format是RGB24位的图片失败(加载图片显示问号)
  • 原文地址:https://www.cnblogs.com/lbz007oi/p/3067350.html
Copyright © 2011-2022 走看看