xiaojie4620

导航

03 2022 档案

NOIP2000提高组 方格取数
摘要:第一种解法 四维暴力DP Code ``` 1 #include <iostream> 2 3 using namespace std; 4 const int N = 22; 5 6 int a[N][N]; 7 int res; 8 int n; 9 int x,y,k; 10 int f[N] 阅读全文

posted @ 2022-03-27 15:15 kuokuo 阅读(71) 评论(0) 推荐(0)

CF 920A Water The Garden
摘要:本题可以看做是一个数学题 因为 在第 1 和第 3 个洒水器之间的 花园灌溉的时间只要 (1 + 3 ) >> 1 - 1 + 1;//这么长的时间 那么我么就可以以此类推到 从而我么可以进行进一步的推广 例如 有10块土地待浇水 那么就是 1 2 3 4 5 6 7 8 9 10 我们假设 洒水器 阅读全文

posted @ 2022-03-26 11:29 kuokuo 阅读(37) 评论(2) 推荐(1)

洛谷 P1020 [NOIP1999 普及组] 导弹拦截
摘要:Coidng #include <iostream> #include <algorithm> #include <cstring> #include <vector> using namespace std; const int N = 1e5 + 10; int q[N]; int f[N], 阅读全文

posted @ 2022-03-20 10:59 kuokuo 阅读(40) 评论(0) 推荐(0)

洛谷P2782 友好城市
摘要:本题我是用的LIS(最长上升子序列)的方法写的 条件1: 每个城市上只能建造一座桥 条件2:所有的桥与桥之间不能够相交 于是我发现,如果将每组数存入结构体,然后以第一个数为key来进行从小到大的排序后,我发现,排完序后就可以直接求出第二个数的最长上升子序列的问题话不多说,上图来解释(这个图可能有一点 阅读全文

posted @ 2022-03-15 22:34 kuokuo 阅读(50) 评论(0) 推荐(0)

洛谷P1091 [NOIP2004 提高组] 合唱队形
摘要:本题是一个简单的 LIS(最长上升子序列)问题 只是要求俩次最长上子序列而已 很容易的 首先由于是最长上升子序列 所以朴素法的动态规划表达式为 f[i] = max( f[i] , f[j] + 1); 就是求出到每个点的最长上升子序列而已啦 从题目所给的条件 我们可以推出一下结论 1.本题是要求出 阅读全文

posted @ 2022-03-15 19:23 kuokuo 阅读(397) 评论(0) 推荐(0)

洛谷P1049 [NOIP2001 普及组] 装箱问题
摘要:本题就是一个简单的01背包问题 1.因为每个物品只能选一次,而且要使箱子的剩余空间为最小。所以可以确定属性为 MAX 2.由于是从n个物品里面选i个物品 那么就是选出的i个物品的空间总和要尽可能的大 就可以得到动态规划的表达式 f[i][j] = max(f[i-1][j],f[i-1][j-w[i 阅读全文

posted @ 2022-03-15 18:41 kuokuo 阅读(237) 评论(0) 推荐(0)

两种排序
摘要:一、快速排序 //快速排序 void quick_sort(int a[],int l,int r) { if( l >= r ) return; int i = l - 1, j = r + 1, x = a[l + r >> 1];// x表示中间值 l + r >> 1 == (l + r) 阅读全文

posted @ 2022-03-14 18:12 kuokuo 阅读(32) 评论(0) 推荐(0)