![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
洛谷
Erin2333
这个作者很懒,什么都没留下…
展开
-
P4017 最大食物链计数
简单dp题单的最后一道题!从前有一个人,她想dp,后来写着写着,就写成了topo。本题这里提供两种做法,拓扑排序和DPS+DP(记忆化搜索),使用vector数组存图,一维变长。拓扑排序#include <iostream>#include <vector>#include <queue>using namespace std;// topoint n, m, ans;int in[5005], out[5005], f[5005];vector&原创 2021-09-03 12:06:33 · 103 阅读 · 0 评论 -
P2196 [NOIP1996 提高组] 挖地雷
两种写法,DPS or DP。DFSv[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 · 159 阅读 · 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 · 118 阅读 · 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 · 90 阅读 · 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 · 102 阅读 · 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 · 91 阅读 · 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 201 3 122 4 10原创 2021-04-15 16:26:02 · 113 阅读 · 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 · 449 阅读 · 1 评论