luogu
2000xcm
oier
展开
-
luogu【P1025】数的划分
思路:DP 经典问题数i划分成j份存在两种方案一个是划分出1的方案一种是不划分出1的方案则划分出1的方案可以视作将j个1划分到j个方案中 则f[i][j]+=f[i-j][j]若不划分出1则可以视作将j个1划分到1个方案中 则f[i][j]+=f[i-1][j-1]#include#include#includeusing namespace std;int f[100原创 2016-11-11 19:52:52 · 356 阅读 · 0 评论 -
luogu【P1006】传纸条
思路:仔细看了看这不就是方格取数么?除了读入不一样 我就再敲了一遍方格取数 #include#include#include#includeusing namespace std;int dp[51][51][51][51];int w[51][51];int main (){ int m,n; cin>>m>>n; for (int i=1;i<=m;i++) f原创 2016-10-28 19:00:34 · 241 阅读 · 0 评论 -
luogu【P1007】独木桥
思路:此题数学气味颇浓 毕竟是递推题 由于一开始不知道初始面对方向 我们考虑是否方向不影响 事实是的确不影响(QwQ)因为如果两个人撞在一起(例如A和B)那么A将走完B回头走的路程(同理B也是) 因此两个人花掉的总时间是不受转向影响的 那么我们现在开始考虑最大最小的决策方案 很明显当坐标位于中点偏某一侧则向某一侧走时间必有最短 反之最长 那么递推方程就建立出来了 min=a[i] 但是由于短板原创 2016-10-29 09:34:25 · 292 阅读 · 0 评论 -
luogu【P1008】三连击
思路:2333来水三连击了 打表大法好 来分高大上的题解:产生全排列函数+大暴力#include #include #include #include #include #include #include #include using namespace std;int main (){ vector v; for (int i=1;i<=9;i++)原创 2016-10-29 09:52:26 · 424 阅读 · 0 评论 -
luogu【P1706】全排列问题
思路:最近发现自己对dfs的理解不够深透于是写了一个最基础的dfs然后分析了一下QwQ#include#include#include#includeusing namespace std;int a[10001];int n;int v[10001];int dfs (int m)//一定要注意这个参数代表的是递归的层数 { if (m-1==n)//当递归层数足够且产生满足原创 2016-10-31 21:44:57 · 600 阅读 · 1 评论 -
luogu【P1179】数字统计
思路:水题 晚自习结束前三分钟打的QwQ#include#include#includeusing namespace std;int ans;int div(int n){ int t; while(n) { t=n%10; n/=10; if (t==2) ans++; }}int main(){ int l,r; cin>>l>>r; for (i原创 2016-10-31 21:51:16 · 266 阅读 · 0 评论 -
luogu【P1478】陶陶摘苹果(升级版)
思路:加特判的一维01背包#include#include#include#includeusing namespace std;int w[5001];int dp[5001];int c[5001];int n,s,a,b,mn;int main (){ cin>>n>>s; cin>>a>>b; for (int i=1;i<=n;i++) { cin>>原创 2016-11-04 18:43:03 · 359 阅读 · 0 评论 -
luogu【1618】三连击(升级版)
思路:全排列函数+模拟#include#include#include#includeusing namespace std;int main(){ int a,b,c,p[10]={0,1,2,3,4,5,6,7,8,9}; cin>>a>>b>>c; int flag=0; do { int x=p[1]*100+p[2]*10+p[3],原创 2016-11-04 20:20:24 · 343 阅读 · 0 评论 -
luogu【P1426】小鱼会有危险吗
思路:一个while,水题#includeusing namespace std;double x,n,l,k=0;int main(){ cin>>n>>x;k=0;l=7.0;//设置初始值。 while(k<n-x)//当小鱼不危险时。 { k+=l;l*=0.98;//每次步数*0.98 } if(k+l>n+x)co原创 2016-11-04 21:11:22 · 1067 阅读 · 0 评论 -
luogu【P1464】Function
思路:按题意写#include int book[21][21][21];int w(int a,int b,int c){ if(a<=0||b<=0||c<=0) return 1; if(a>20||b>20||c>20) return w(20,20,20); if(!book[a][b][c]){ if(a<b&&b<c)原创 2016-11-04 21:27:14 · 538 阅读 · 0 评论 -
luogu【P1014】Cantor表
思路:模拟#includeusing namespace std;int main(){ int n; cin>>n; // 读入 int a[n],b[n],w=1,s=1,i; //定义换行器 for(i=1;i<=n;i++) { if(w==s) {w=1;s++;} // 记录行数原创 2016-11-04 21:28:59 · 312 阅读 · 0 评论 -
luogu试练场の简单的模拟
P1 铺地毯思路:以前一直是想用二维数组存了直接覆盖最后直接读后来发现直接判断坐标位置就可以了#include#include#includeusing namespace std;int xi[10001],yi[10001],xx[10001],yy[10001];int nx,ny,n;int check(int a,int b,int c,int d){ if (n原创 2016-11-05 09:28:21 · 237 阅读 · 0 评论 -
luogu【P1192】台阶问题
思路:DP#include#includeusing namespace std;int n,k;int f[100001];int main (){ cin>>n>>k; for(int i=1;i<=k;i++) f[i]=1; for (int i=2;i<=n;i++) { for (int j=1;j<=k&&j<=i;j+原创 2016-11-08 17:19:00 · 229 阅读 · 0 评论 -
luogu【P1004】方格取数
思路:多线程DP,同时计算两条路径的最大值,记得当走到同一个点时要删除一个数 时间复杂度O(n^4)#include#include#include#includeusing namespace std;int dp[10][10][10][10];int a[10][10];int main (){ int n; cin>>n; int k,f,ww; for (in原创 2016-10-28 15:36:44 · 221 阅读 · 0 评论