自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 资源 (1)
  • 收藏
  • 关注

原创 北大oj百练-2815:城堡问题

注意点:房间数的++在DFS外,房间大小的++在DFS内部#include<iostream>#include<stack>#include<cstring>#define maxn 60using namespace std;int R,C; //R表示行数,C表示列数int rooms [maxn][maxn];int color [maxn...

2019-08-30 14:22:11 167

原创 完全背包问题

问题回顾:01背包问题完全背包问题有 N 种物品和一个容量是 V 的背包,每种物品都有无限件可用。第 i 种物品的体积是 vi,价值是 wi。求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。 输出最大价值。输入格式第一行两个整数,N,V,用空格隔开,分别表示物品种数和背包容积。接下来有 N 行,每行两个整数 vi,wi,用空格隔开,分别表示第 i 种物...

2019-08-29 21:34:35 190

原创 01背包及滚动数组优化(一维)

01背包问题有 N 件物品和一个容量是 V 的背包。每件物品只能使用一次。第 i 件物品的体积是 vi,价值是 wi。求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。 输出最大价值。输入格式第一行两个整数,N,V,用空格隔开,分别表示物品数量和背包容积。接下来有 N 行,每行两个整数 vi,wi,用空格隔开,分别表示第 i 件物品的体积和价值。输出格...

2019-08-29 14:55:19 902 1

原创 动态规划基础入门

什么是动态规划呢?顾名思义,动态地进行规划?让我们先来看个小游戏:引入:大家在小的时候或许玩过跳房子的游戏,如果没玩过也没关系,我们对规则进行稍稍改动:龙龙在跳房子,每次可以选择跳1格或者k个格子,不允许往回跳,请问龙龙从第零格开始跳,跳到第n格一共有多少种方案?注:跳格子的方案与顺序有关,比如先跳一格,再跳两格和先跳两格,再跳一格是不同种方案。数据范围**:**2<=n&...

2019-08-29 13:56:02 115

原创 北大oj百练-1458:Common Subsequence

#include<iostream>#include<cstring>using namespace std;char sz1[1000],sz2[1000];int maxLen[1000][1000];int max(int a,int b){ if(a>b) return a; else return b;}int main(){ whi...

2019-08-27 20:29:37 163

原创 北大oj百练-2757:最长上升子序列

#include<iostream>using namespace std;int a[1010],dp[1010];//dp[i]表示以第i个数为终点时的最大上升子序列 int max(int a,int b){ if(a>b)return a; else return b;}int main(){ int n; cin >> n; for(...

2019-08-27 18:25:50 175

原创 北大oj百练-1163:The Triangle

在节约空间使用D数组的最后一行时要注意一些细节,比如第27行的各个下标#include<iostream>#define maxn 100using namespace std;int D[maxn][maxn];int max(int a,int b){ if(a>b) return a; else return b;}int main(){ int...

2019-08-27 16:36:39 143

原创 北大oj百练-2456:Aggressive cows

注意点:judge单独写一个bool函数,更方便构思;二分法时,终止条件需要注意。#include<iostream>#include <algorithm>using namespace std;int a[100010],n,c;bool judge(int mid){ int sum=1,last=a[0]; for(int i=1;i<n;i+...

2019-08-27 14:05:24 169

原创 北大oj百练-2787:算24

小tips:浮点数比较大小,不能用==,而是应该浮点数的差是否小于某个很小的数#include<iostream>#include<cmath>using namespace std;double a[5];#define EPS 1e-6bool isZero(double x){ return fabs(x)<=EPS; //浮点数取绝对值 ...

2019-08-26 13:53:21 126

原创 北大oj百练-1664:放苹果

#include <iostream>using namespace std;int f(int m,int n) { if( n > m ) return f(m,m); if( m == 0) return 1; if( n <= 0 ) return 0; return f(m,n-1) + f(m-n,n);}int main() { i...

2019-08-26 10:17:40 167

原创 北大oj百练-4017:爬楼梯

递归/动态规划题两种写法:递归#include<iostream>using namespace std;int stairs(int n){ if(n<0) return 0; if(n==0) return 1; return stairs(n-1)+stairs(n-2);} int main(){ int n; while(~scanf("...

2019-08-26 10:01:27 187

原创 北大oj百练-4132:四则运算表达式求值

小知识:cin.peek(),看下一个是多少,不取走,比如32,读到的就是3;cin.get(),取走下一个#include<iostream>#include<cstring>#include<cstdlib>#include <iomanip>   //设置保留小数点必备的头文件using namespace std;doubl...

2019-08-26 09:34:09 237

转载 浙大PTA-01-复杂度2 Maximum Subsequence Sum

感觉状态有点差,一个小bug一直de不出,看了这篇博客发现竟然那么好改https://blog.csdn.net/liangnihei/article/details/83617075编程容易不知不觉消耗很多时间呀,要想学到更多东西,有的时候真的要好读书,不求甚解,每有会意,便欣然忘食。...

2019-08-25 20:23:25 126

原创 浙大PTA-01-复杂度1 最大子列和问题

陈越姥姥、何钦铭爷爷、翁凯叔叔的三巨头组合太nice了,爽到,而且每道题的测试用例会有不同程度的提示,很棒!#include<iostream>.int a[100010];int main(){ int K,max=0,sum=0; scanf("%d",&K); for(int i=0;i<K;i++) { scanf("%d",&a[i]...

2019-08-25 18:53:58 262

原创 北大oj百练-2694:逆波兰表达式

小知识:可使用atof(str)把字符串转换为一个double类型的浮点数。atof定义在math.h中。此题可使用函数递归调用的方法求解。#include<iostream>#include<cmath>using namespace std;double exp() //读入逆波兰表达式,并计算其值 { char s[10];//读入逆波兰表达式 c...

2019-08-25 15:01:11 346

原创 北大oj百练-2754 八皇后

格式采用了mooc的和oj上的不同#include<iostream>#include<cmath>#define N 4using namespace std; int queenPos[100]; //用来存放算好的皇后位置,最左上角为(0,0) void NQueen(int k);int main() { NQueen(0); return 0...

2019-08-25 13:42:25 190

原创 北大oj百练-4147:汉诺塔问题(Hanoi)

经典题,过程类似于栈,将问题不断分解为一步就能完成的任务#include<iostream>using namespace std;void Hanoi(int n, char left ,char mid ,char right) { if(n==1) { cout << n << ":" << left << "...

2019-08-25 11:34:11 224

原创 北大oj百练-1013:Counterfeit Dollar(WA)

(WA)代码,debug失败,先码着 #include <iostream> #include <cstring> using namespace std; char Left[3][20];//天平左边硬币 char Right[3][20];//天平右边硬币 char result[3][20];//存储结果 bool IsFake(char c,bool...

2019-08-25 10:24:31 193

原创 北大oj百练-2810

开始学习北大算法基础了,竟然有全套配套oj,也是在百练里,爱了#include<iostream>using namespace std;int main(){ int N,a; scanf("%d",&N); for(int a=1;a<=N;a++) for(int i=2;i<=N;i++) { for(int j=i+1;j<=N...

2019-08-24 11:02:23 155

原创 北大oj百练-4139

看数据结构一脸懵中,想找一道简单的题爽一下,结果第一遍竟然错了,尝了一口此时大脑的味道,大概是苦的只有我会错的地方:不好好初始化。#include<iostream>using namespace std;int main(){ int a,b,c,sum=0; cin >> a >> b >> c; for(int i=0;i&lt...

2019-08-24 09:57:58 243

原创 北大oj百练-1007

思路:结构体+快排#include<iostream>#include<cstdio> #include<cstring>#include<algorithm>using namespace std;struct Node{ char a[100]; int sum=0;};struct Node node[100];int ...

2019-08-23 15:43:35 291

原创 北大oj百练-1005

小知识:上网发现,PI可以用反三角函数表示,还是很巧妙的。#include #define PI acos(-1)#include<iostream>#include <cmath>#define PI acos(-1)using namespace std;int main(){ int T,year=1,count=1; float x,y; sc...

2019-08-23 13:51:53 246

原创 北大oj百练-1006/4148生理周期

易错点:时间轴的遍历,起点应该为d+1~d+21252,有两个小陷阱,一个是所给的p e i不一定是最先出现的峰值,可以是任意峰值;另一个是最后算出的答案要比d大,不然相减是负数输出不对。相关知识:欧几里得定理、中国剩余定理#include<iostream>#include <algorithm>using namespace std;int main(){...

2019-08-23 13:29:49 331

原创 北大oj百练-1003

易错点:1、continue和break的错误使用,导致第一遍WA2、EOF为-1,连续输入时,要注意a==0时及时跳出3、一遍结束后记得清零#include<iostream>using namespace std;int main(){ float a,n=2,sum=0.00; int count=0; while(scanf("%f",&a)...

2019-08-23 11:24:01 525

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除