洛谷
Erin2333
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
P4017 最大食物链计数
简单dp题单的最后一道题! 从前有一个人,她想dp,后来写着写着,就写成了topo。 本题这里提供两种做法,拓扑排序和DPS+DP(记忆化搜索),使用vector数组存图,一维变长。 拓扑排序 #include <iostream> #include <vector> #include <queue> using namespace std; // topo int n, m, ans; int in[5005], out[5005], f[5005]; vector&原创 2021-09-03 12:06:33 · 181 阅读 · 0 评论 -
P2196 [NOIP1996 提高组] 挖地雷
两种写法,DPS or DP。 DFS v[i]为点i处地雷数量,d[i][j]表示邻接矩阵,path[]记录路径。 #include <iostream> using namespace std; int n, v[25], d[25][25], ans[25], path[25]; int max_sum, len; int judge(int x){ for(int i = x+1; i <= n; i ++){ if(d[x][i]==1) return原创 2021-09-02 21:27:18 · 249 阅读 · 0 评论 -
P1464 Function
题目描述 对于一个递归函数w(a,b,c): 如果a≤0 or b≤0 or c≤0就返回值1; 如果a>20 or b>20 or c>20就返回w(20,20,20); 如果a<b并且b<c就返回w(a,b,c-1)+w(a,b-1,c-1)-w(a,b-1,c); 其它的情况就返回w(a-1,b,c)+w(a-1,b-1,c)+w(a-1,b,c-1)-w(a-1,b-1,c-1)。 题解 经典记忆化搜索,因为有重复计算,所以每次把计算结果保存下来。 #include &原创 2021-09-02 15:48:37 · 205 阅读 · 0 评论 -
P1048 [NOIP2005 普及组] 采药
确实,很水的dp,01背包嘛。 初学,还是写错啦。 两种方法,二维dp和一维dp。 一维dp #include <iostream> using namespace std; int t, m; int w[105], v[105]; int dp[1005]; int main(){ scanf("%d%d", &t, &m); dp[0] = 0; for(int i = 0; i < m; i ++){ scanf("%d%原创 2021-08-31 21:37:14 · 154 阅读 · 0 评论 -
P2895 [USACO08FEB]Meteor Shower S
让我来看看谁是大傻x 哈!原来是我自己! (更新vis数组的时候=写成==导致TLE,debug了许久) 考察: 最基本的bfs,没得说。 就是没有解题思维的我, 经历了WA->MLE->TLE->AC。 WA是没有考虑到给的流行掉落是无序的。 本来想的是开两个数组,一个存当前时间被烧焦的土地,一个存最后被烧焦的土地,如果所在位置当前时间不会被烧焦,最后也不会被烧焦,就是安全的。 但菜鸡一下就MLE了,想想也是数组开多了。 没思路就看了下题解,发现不需要把ash[][]这个数组只存0/1啊原创 2021-08-29 16:00:17 · 174 阅读 · 0 评论 -
P1219 [USACO1.5]八皇后 Checker Challenge
菜鸡来发代码了。 写这题真是命途多舛。 忘记带纸笔了,所以对角线找规律就没找到,然后存了个n*n的数组来看有没有被占领,vis++和vis–。并且写的时候,vis[x][y]还写笔误了,debug了好久。写完递归才发现dfs里参数只需要行,不需要列。 结果最后一个点超时了。 看了题解才发现,可以用i+j表示左对角线,i-j+n表示右对角线(果然还是太菜了啊,都没有发现和相等这个问题)。 修改了一下代码,AC了。 #include <iostream> #include <stdlib.h&原创 2021-04-16 21:05:48 · 151 阅读 · 0 评论 -
HDU 哈密顿绕行世界问题
题目 一个规则的实心十二面体,它的 20个顶点标出世界著名的20个城市,你从一个城市出发经过每个城市刚好一次后回到出发的城市。 输入 前20行的第i行有3个数,表示与第i个城市相邻的3个城市.第20行以后每行有1个数m,m<=20,m>=1.m=0退出。 输出 输出从第m个城市出发经过每个城市1次又回到m的所有路线,如有多条路线,按字典序输出,每行1条路线.每行首先输出是第几条路线.然后个一个: 后列出经过的城市.参看Sample output 样例输入 2 5 20 1 3 12 2 4 10原创 2021-04-15 16:26:02 · 197 阅读 · 0 评论 -
洛谷 P1075 [NOIP2012 普及组] 质因数分解
NOIP 2012 普及组 第一题,如果细想,确实很水…… 第一,不用挨个分解质因数; 第二,不用判断素数; 唯一分解定理:一个合数能且只能分解为一组素数的乘积。如果一个数是两个不同的素数的乘积,那么除了1和他本身和这两个素数外,它没有别的约数了。 Tips:从小往大找要比从大往小找快。 附代码: #include<bits/stdc++.h> using namespace std; int main(){ int n; cin >> n; for(int原创 2021-03-29 19:50:53 · 522 阅读 · 1 评论
分享