noip前夕的刷水记录

2023-11-23 08:20
文章标签 记录 noip 前夕

本文主要是介绍noip前夕的刷水记录,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

时间:持续1月(2018 10-11)

前言:

为准备期中考,初三快AFO的蒟蒻跟随机房神犇hjw的脚步旷掉了期中考,刷水找信心。

于是,不但中午、放学去机房,晚上也没怎么复习,QwQ。

正文:

P4779 【模板】单源最短路径(标准版) :

   模板,练了下spfa堆优化

P2878 [USACO07JAN]保护花朵Protecting the Flowers :

   排序,贪心

P1186 玛丽卡 :

   从最短路上枚举要删去的边。

P1113 杂务 :

  1. 拓扑排序

  2. 题解更优做法:

    简单来说,因为任务可以并发,所以一个任务如果有前驱的话,最优方案便是在它的最晚一个前驱结束后就立即开始,而且任务k的前驱节点一定小于k,所以读入时顺便从它的前驱里挑一个最大的转移即可。同时可以更新最终答案。

P1194 买礼物 :

   最小生成树水题

P1993 小K的农场 :

   差分约束(判环)

P1266 速度限制 :

   分层最短路 / 复杂的拓扑

P1342 请柬 :

   博客里有

P1491 集合位置 :

   模板

P1830 轰炸III :

   纯属无聊刷水

P1412 经营与开发 :

​ dp,有后效性,建议从后往前。

​ 直接贴题解好了:

​ 举个例子,第i个是资源型,我们可以搞出dpi+1的最大金钱数,钦定第i个开始选的系数为1,那么dp[i]=max(dp[i+1]/这个不选/, a[i]+dp[i+1](1-0.01k)/第i个选了,加上金钱,当前钻头能力系数变为原来的(1-0.01k),那么后面的得到的最大金钱数也变为原来的(1-0.01k)/)

P1127 词链 :

   欧拉回路

1.单词作点 可以拼在一起的单词连边。

2.先对单词排序,加边时注意顺序,使找到的第一个欧拉回路即为字典序最小的,后面直接跳出就好了。

3.dfs前初步判断一下是否有解(注意,是初步!!!) 用一些奇怪的方法

4.dfs后,若找到解则输出,否则***。(因为初步判断有解时可能将一些无解的情况放过了)

P2324 [SCOI2005]骑士精神 :

   毒瘤的bfs+hash,有点像八数码难题(模板)

P1462 通往奥格瑞玛的道路 :

   二分(最大收取费用)+spfa

P1522 牛的旅行 Cow Tours :

   floyed

P1346 电车 :

   spfa水题

P2471 [SCOI2007]降雨量 :

   实在毒瘤 , 博客里有写

P1816 忠诚 :

   rmq模板

P1476 休息中的小呆 :

   最长路并且结点个数+1

P1821 [USACO07FEB]银牛派对Silver Cow Party :

   博客里有

P1629 邮递员送信 :

   建正、反向图,跑一遍,把每个节点两次的和加起来

P1529 回家 Bessie Come Home :

   水题,麻烦在输入的处理

P1656 炸铁路 :

   tarjan,博客里有

P1726 上白泽慧音 :

   博客里有

P2782 友好城市 :

   排序后lis,但是要用nlogn的。

P2697 宝石串 :

   水题,前缀和

P2872 [USACO07DEC]道路建设Building Roads :

   最小生成树水题。

P2434 [SDOI2005]区间 :

   博客里有

P2701 [USACO5.3]巨大的牛棚Big Barn :

   博客里有

P1566 加等式 直接给洛谷题解吧:

看到这道题,我们首先注意到“找出其所有的加等式的个数”,自然地考虑运用计数DP求出若干数相加的和的个数

考虑将每个元素排序后DP处理若干数相加的和的个数

用f[i]表示

对于一个数a[i],对于前i−1个元素选或不选的和j−a[i],选a[i]后的和为j,则组成j−a[i]的方案数会对组成j的方案数做出大小为f[j−a[i]]的贡献,

所以枚举i,j像这样转移f[j]+=f[j−a[i]]

考虑加等式的统计:

对于一个整数集合,我们定义“加等式”如下:集合中的某一个元素可以表示成集合内其他元素之和。

对于一个数,我们已经得到它之前所有数选或不选的和等于它的方案数,为了避免漏记,考虑到对于i>j,i一定不会作为j的加等式中的元素出现,所以我们可以在输入时排序,从小到大DP,对于每个元素a[i],统计它对答案f[a[i]]的贡献

P1929 迷之阶梯 dp

#define N 211
int a[N],n,t;
ll f[N];
int main(){io>>n;Fur(i,1,n)io>>a[i];f[1]=0;Fur(i,2,n){f[i]=1e9;if(a[i]-a[i-1]<=1)f[i]=f[i-1]+1;Fur(j,1,i-1){t=l2(a[i]-a[j]);if(j+t<=i)f[i]=MIN(f[i],f[j+t]+t+1);}}if(f[n]==1e9)f[n]=-1;io<<f[n];
}

不知道为什么总是wa1个点

P2758 编辑距离 还是dp

f[i][j]=MIN(f[i-1][j-1]+(a[i]!=b[j]),MIN(f[i-1][j],f[i][j-1])+1);

a,b指两个字符串

记得要先初始化

Fur(i,1,n)f[i][0]=i;
Fur(i,1,m)f[0][i]=i;

P1444 [USACO1.3]虫洞wormhole :

   图论

P1649 [USACO07OCT]障碍路线Obstacle Course :

   bfs

P1653 猴子 :

   反向并茶几

P1692 部落卫队 :

   dfs剪枝

P4017 最大食物链计数 P3183 [HAOI2016]食物链 ::

   双倍经验,拓扑

P1016 旅行家的预算 :

   贪心,贴洛谷题解吧

这道题目应该算是妥妥的贪心+模拟吧……

算法原理如下:

1.枚举途中经过的加油站,每经过一个加油站,计算一次花费;

2.在一个加油站所需要加的油,就是能够支持它到达下一个油价比它低的加油站的量;

3.如果在这个加油站即使加满油,都不能到达一个比它油价低的加油站,就把油箱加满,前往能够到达的加油站中油价最低的那个;

4.如果在这个加油站即使加满油,都不能到达任意一个加油站,也不能到达终点城市,说明无解;

第三点:为什么要加满油?因为这样可以减少在下一个加油站(价格更贵)所需要加的油量。

P1021 邮票面值设计 :

   还是不大能推的dp 贪心?

P1205 [USACO1.2]方块转换 Transformations :

   恶心模拟(在同学的怂恿下写的,虽说2次就过了,但是1个中午没了)

P1650 田忌赛马 :按题意二分图

562c11dfa9ec8a13424f9c95fc03918fa0ecc06a.jpg

其实是dp

P3912 素数个数 :

   欧筛/挨筛

P3395 路障 :

   bfs

P3478 [POI2008]STA-Station :

   树形dp,洛谷换评测机后不会re了

P4086 [USACO17DEC]My Cow Ate My Homework :

   前缀和

P3392 涂国旗 :

   模拟

P2660 zzc 种田 :

   数论,贪心,gcd

结论就不讲了,直接搬题解:

#include<bits/stdc++.h>
using namespace std;
int main(){long long x,y,ans=0;cin>>x>>y;while(x&&y){                          //如果x,y中有一个为0,就结束了swap(x,y);                        //交换x和y,为什么?马上就知道了ans+=4*y*(x/y);              //种完剩下的所有最大的正方形。很像GCD是不是?x%=y;                             //然后x就只剩下x%y了,因为x%y<y,所以之前需要交换}cout<<ans;return 0;
}

P2695 骑士的工作 :

   排序贪心

P2193 HXY和序列 dp

#define N 2001
#define mod (1000000007)
int n,m,f[N][N],ans=0;
int main(){cin>>n>>m;Fur(i,1,n)f[i][1]=1;Fur(i,1,m-1)Fur(j,1,n){int p=n/j;Fur(k,1,p)(f[j*k][i+1]+=f[j][i])%=mod;}Fur(i,1,n)(ans+=f[i][m])%=mod;cout<<ans;
}

P3047 [USACO12FEB]附近的牛Nearby Cows树形动规

常规操作:f[i][j]表示到iii的距离为j的奶牛有多少只,但注意这只是在第二遍dfs之后

在我的第一遍dfs中(就是下面那个叫build的函数),f[i][j]的含义是在i这课子树中到iii的距离为j的奶牛有多少只,所以在第一遍dfs的时候,f[i][j]的状态只会来自它的儿子们

于是在第一遍dfs就有一个异常简单的方程

f[i][j]=∑f[k][j−1]

其中k是i的儿子

如果我们钦定以1为根建树的话,那么1的子树就是整棵树,于是这个时候的f[1]就是全树意义下的答案了

而这个时候第二遍dfs就要登场了,第二遍dfs的意义就是利用父亲去更新儿子,于是我们就又有一个简单的方程了

f[k][j]=∑f[i][j−1]

其中k是i的儿子

这样的话肯定会有重复的,因为到iii的距离为2的点包含到kkk距离为1的k的儿子们,而这些点位于kkk的子树中的点已经在第一遍dfs的时候被加上了,于是我们在这里简单容斥就好了

P3360 偷天换日 :

   树形动规(访问美术馆+背包)

P1105 平台 :

   排序,模拟

P1208 [USACO1.3]混合牛奶 Mixing Milk:

   排序,贪心

P1219 八皇后 :

   dfs模板

P2190 小Z的车厢 :

   差分

P2191 小Z的情书 :

   模拟

P2142 高精度减法 P1480 A/B Problem P2005 A/B Problem II:

   人生苦短,我用Python

P2049 魔术棋子 dp

#define N 111
int n,m,k,a[N][N],ans=0,b[N];
bool f[N][N][N];
int main(){cin>>n>>m>>k;Fur(i,1,n)Fur(j,1,m)scanf("%d",&a[i][j]),a[i][j]%=k;f[1][1][a[1][1]]=1;Fur(i,1,n)Fur(j,1,m)Fur(p,0,k-1)if(f[i][j][p]){f[i+1][j][p*a[i+1][j]%k]=1;f[i][j+1][p*a[i][j+1]%k]=1;}Fur(i,0,k-1)if(f[n][m][i])b[++ans]=i;cout<<ans<<endl;Fur(i,1,ans)printf("%d ",b[i]);
}

P1972 [SDOI2009]HH的项链:

   莫队

P1833 樱花:

   背包,麻烦在输入处理

P1475 控制公司 Controlling Companies:

   dfs

P1379 八数码难题:

   bfs模板题

P1239 计数器:

   数位dp/奇技淫巧

P1564 膜拜:

   dp

P1355 神秘大三角:

   数论,面积法

计算所判断的点与三角形三个顶点的连线与三角形三边组成的三个三角形面积

所得三角形面积记为acd,abd,bcd,原三角形面积为abc

若acd+abd+bcd>abc,则点在三角形外,若相等则点在三角形内

特判点在三角形上的情况

P1238 走迷宫:

   dfs

P1592 互质:

   数论

P1167 刷题:

   排序

P2578 [ZJOI2005]九数码游戏:

   八数码问题的修改,bfs

P1249 最大乘积 :

   结论题

P1250 种树 P1645 序列 P3275 [SCOI2011]糖果 P1986 元旦晚会 :

​ 差分约束

P1230 智力大冲浪:

   贪心,排序

P3668 [USACO17OPEN]Modern Art 2 现代艺术2:

   栈

P1987 摇钱树:

   贪心+背包

P1191 矩形: 

   单调栈

P2777 [AHOI2016初中组]自行车比赛:

   排序

P2778 [AHOI2016初中组]迷宫

P2983 [USACO10FEB]购买巧克力Chocolate Buying:

   排序,贪心

P2918 [USACO08NOV]买干草Buying Hay:

   

P2853 [USACO06DEC]牛的野餐Cow Picnic:

   对每只牛都bfs一次

P3093 [USACO13DEC]牛奶调度Milk Scheduling:

​ 排序+贪心

P3094 [USACO13DEC]假期计划Vacation Planning:

   先floyd预处理,然后再每个询问分别处理

P1561 [USACO12JAN]爬山Mountain Climbing:

   双机流水作业

P2255 [USACO14JAN]记录奥林比克:

   贪心,类似线段覆盖

P2115 [USACO14MAR]破坏Sabotage:

   二分平均产奶量

未完续待……

转载于:https://www.cnblogs.com/mimiorz/p/9899629.html

这篇关于noip前夕的刷水记录的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/416600

相关文章

Node.js学习记录(二)

目录 一、express 1、初识express 2、安装express 3、创建并启动web服务器 4、监听 GET&POST 请求、响应内容给客户端 5、获取URL中携带的查询参数 6、获取URL中动态参数 7、静态资源托管 二、工具nodemon 三、express路由 1、express中路由 2、路由的匹配 3、路由模块化 4、路由模块添加前缀 四、中间件

记录每次更新到仓库 —— Git 学习笔记 10

记录每次更新到仓库 文章目录 文件的状态三个区域检查当前文件状态跟踪新文件取消跟踪(un-tracking)文件重新跟踪(re-tracking)文件暂存已修改文件忽略某些文件查看已暂存和未暂存的修改提交更新跳过暂存区删除文件移动文件参考资料 咱们接着很多天以前的 取得Git仓库 这篇文章继续说。 文件的状态 不管是通过哪种方法,现在我们已经有了一个仓库,并从这个仓

学习记录:js算法(二十八):删除排序链表中的重复元素、删除排序链表中的重复元素II

文章目录 删除排序链表中的重复元素我的思路解法一:循环解法二:递归 网上思路 删除排序链表中的重复元素 II我的思路网上思路 总结 删除排序链表中的重复元素 给定一个已排序的链表的头 head , 删除所有重复的元素,使每个元素只出现一次 。返回 已排序的链表 。 图一 图二 示例 1:(图一)输入:head = [1,1,2]输出:[1,2]示例 2:(图

perl的学习记录——仿真regression

1 记录的背景 之前只知道有这个强大语言的存在,但一直侥幸自己应该不会用到它,所以一直没有开始学习。然而人生这么长,怎就确定自己不会用到呢? 这次要搭建一个可以自动跑完所有case并且打印每个case的pass信息到指定的文件中。从而减轻手动跑仿真,手动查看log信息的重复无效低质量的操作。下面简单记录下自己的思路并贴出自己的代码,方便自己以后使用和修正。 2 思路整理 作为一个IC d

SSM项目使用AOP技术进行日志记录

本步骤只记录完成切面所需的必要代码 本人开发中遇到的问题: 切面一直切不进去,最后发现需要在springMVC的核心配置文件中中开启注解驱动才可以,只在spring的核心配置文件中开启是不会在web项目中生效的。 之后按照下面的代码进行配置,然后前端在访问controller层中的路径时即可观察到日志已经被正常记录到数据库,代码中有部分注释,看不懂的可以参照注释。接下来进入正题 1、导入m

flume系列之:记录一次flume agent进程被异常oom kill -9的原因定位

flume系列之:记录一次flume agent进程被异常oom kill -9的原因定位 一、背景二、定位问题三、解决方法 一、背景 flume系列之:定位flume没有关闭某个时间点生成的tmp文件的原因,并制定解决方案在博主上面这篇文章的基础上,在机器内存、cpu资源、flume agent资源都足够的情况下,flume agent又出现了tmp文件无法关闭的情况 二、

Linux常用工具与命令日常记录(长期更新)

Linux常用工具与命令日常记录(长期更新) 目录 1.本地复制到远程2.Linux压缩拆包与解压3.生成随机密码4.ubuntu默认Python版本设置5.计算当前文件夹中文件数量6.windows中编写shell脚本,在Linux运行出错7.history 历史命令显示时间用户8.Ubuntu18.04设置源、网卡9.Ubuntu18.04设置网卡10.Ubuntu:自定义开

Excel和Word日常使用记录:

Excel使用总结 表格颜色填充: 合并单元格: 选中你要合并的单元格区域。按下快捷键 Alt + H,然后松开这些键。再按下 M,接着按 C。这个组合键执行的操作是:Alt + H:打开“主页”选项卡。M:选择“合并单元格”选项。C:执行“合并并居中”操作。 插入行: 在Excel中,插入一行的快捷键是:Windows:选择整行(可以点击行号)。按下 Ctrl + Sh

野火霸天虎V2学习记录

文章目录 嵌入式开发常识汇总1、嵌入式Linux和stm32之间的区别和联系2、stm32程序下载方式3、Keil5安装芯片包4、芯片封装种类5、STM32命名6、数据手册和参考手册7、什么是寄存器、寄存器映射和内存映射8、芯片引脚顺序9、stm32芯片里有什么10、存储器空间的划分11、如何理解寄存器说明12、如何操作寄存器的某一位 STM32F407芯片学习1、stm32单片机启动流程s

【20240907问题记录(未解决)】Conda环境问题:SSH与本地环境变量不一致

Conda 允许用户在同一系统上创建多个独立的Python环境。然而,最近遇到了一个奇怪的问题:通过SSH连接到远程Ubuntu机器时,Conda环境变量的行为与本地机器不一致。以下是具体遇到的问题: 1. 问题描述 在本地Ubuntu机器上,我的conda的python版本是3.6,而pip版本可以通过命令 pip --version 查看,显示为: pip 21.3.1 from /ho