自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 收藏
  • 关注

原创 【模板】三分法

以 洛谷P3382 【模板】三分法 为例 如题,给出一个N次函数,保证在范围[l,r]内存在一点x,使得[l,x]上单调增,[x,r]上单调减。试求出x的值。函数求导转化为二分求二分函数的零点裸三分若calcu(mid1) > calcu(mid2) 则答案(l, mid2)区间里 否则在(mid1, r)//P3382 【模板】三分法#include <bits/stdc++.h>using

2017-11-08 10:58:24 475

原创 常见的时间复杂度所对应的数据规模

嗯 通常一秒内10^6肯定能过 10^7有点勉强 10^8。。就悬了O(logn) 额 非常大 long long内都可以O(n) 10^7O(nlogn) 10^5 ~ 5 * 10^5O(n^2) 1000 ~ 5000O(n^3) 200 ~ 500O(2^n) 20 ~ 24O(n!) 12

2017-10-04 23:19:34 3726

原创 洛谷 P1006 传纸条(NOIP2008提高组第三题)

本以为一来一回两遍DP 然而这样有后效性所以改成了四维DP两个点同时出发 路线不重复 f[i][j][p][q]表示一个到(i, j)一个到(p, q)时 最大的好感度三个判重 Line26 Line34 Line38 一个小剪枝 Line25//P1006 传纸条//2017.5.23 #include <bits/stdc++.h>using namespace std;int m

2017-05-23 17:21:58 641

原创 洛谷 P1018 乘积最大(NOIp2000提高组第二题)

DPf[i][j]表示在前i个数字中插入j个乘号时乘积的最大值//P1018 乘积最大//2017.5.22#include <bits/stdc++.h>using namespace std;int n, k;string s;long long f[42][7];int sub(int x, int y){ int num = 0; for (int ii = 0; i

2017-05-23 17:11:29 1199

原创 洛谷 P1034 矩形覆盖 (NOIp提高组2002)

BFS注释非常详细 好几个坐标的运算要多画画图要注意第64行有一个非常简单的剪枝 然而没有就少了20分//P1034 矩形覆盖//2017.5.16//#define LOCAL#include <cstdio>#include <iostream>using namespace std;int n, m, ans = 250000 + 2, num;struct Node{

2017-05-23 17:05:37 938

原创 CODE[VS] 青铜Bronze 整数处理 1202:求和

额(⊙o⊙)… 还是说明我很无聊。。。//1202 求和//2017.5.9#include <iostream>#include <cstdio>using namespace std;int n, x, sum;int main(){ scanf("%d", &n); for (int i = 0; i < n; i++){ scanf("%d", &x);

2017-05-09 17:19:15 341

原创 CODE[VS] 青铜Bronze 整数处理 1201:最小数和最大数

额(⊙o⊙)… 只能说明我很无聊。。。//1201 最小数和最大数//2017.2.26#include <iostream>#include <cstdio>using namespace std;int n, x, _max, _min;int main(){ scanf("%d", &n); scanf("%d", &x); _min = _max = x;

2017-05-09 17:15:45 349

原创 求最大公约数

两种方法//gcd:辗转相除法 #include <cstdio>#include <iostream>using namespace std;int m, n;int gcd(int m, int n){ if (n == 0) return m; else return gcd(n, m % n);}int main(){ cin

2017-04-30 22:59:24 299

原创 洛谷 P1019 单词接龙

深搜 DFS解释在注释里都有 不多说什么了//P1019 单词接龙//2017.4.26#include <iostream>#include <cstdio>using namespace std;const int MAXN = 24;int n, ans, book[MAXN], connect[MAXN][MAXN];string word[MAXN];char start;i

2017-04-30 10:55:16 1733 1

原创 洛谷 P1025 数的划分

DP相当于分苹果那个问题 (OpenJudge上好像有)即 将n个苹果放在m个盘子里 假设已从小到大排序 则 若第一个盘子里的苹果数为1 那么方案数f(n, m)等于 把这个苹果(盘子)去掉后的方案数f(n - 1, m - 1) 若第一个盘子中的苹果数不为零 即每个盘子里至少有两个苹果 则将每个盘子里拿走一个苹果不改变其方案数 那么f(n, m) =

2017-04-24 15:04:53 370

原创 洛谷 P1881 绳子对折

小水题模拟//P1881 绳子对折//2017.4.11#include <iostream>#include <cstdio>#include <algorithm>using namespace std;const int MAXN = 100 + 2;int n, l, s[MAXN], ans;int judge1(int mid){ for (int i = mid -

2017-04-11 17:00:08 542

原创 洛谷 P1162 填涂颜色

先假设外面有一圈边框 然后分别从四条边开始填色 每次只要碰到墙就返回注:输出时要把边框去掉//P1162 填涂颜色//2017.4.10#include <iostream>#include <cstdio>using namespace std;int n;int map[36][36];void dfs(int x, int y){// cout << x << " " <<

2017-04-11 16:16:54 536

原创 洛谷 P1722 矩阵 II

dp[i][j] 表示 到第i的位置为止 红色算筹比黑色算筹多j个时的方案数然后递推详细的过程在源程序的注释里都有最后输出dp[n][0] 因为要求红黑算筹数目相等 (n已经预处理过了)//P1722 矩阵 II//2017.3.28 #include <iostream>#include <cstdio>using namespace std;int n, dp[201][201]

2017-03-28 17:02:40 564

原创 洛谷 P1451 求细胞数量

小水题注: 每次只读入一位 “%1d”//P1451 求细胞数量//2017.3.27#include <iostream>#include <cstdio>using namespace std;int m, n, ans, map[102][102], book[102][102];void dfs(int i, int j){ if (book[i][j]) return ;

2017-03-27 15:22:47 595

原创 洛谷 P1458 顺序的分数 Ordered Fractions

我写了两种方法:第一种:(看的别人的)某种奇怪的奇巧淫技自己解释不清楚 手动模拟模拟就明白了//P1458 顺序的分数 Ordered Fractions//用了某种很迷的奇巧淫技//2017.3.6#include <iostream>#include <cstdio>using namespace std;int n;void f(int x1, int y1, int x2, int

2017-03-07 16:59:40 564

原创 洛谷 P1106 删数问题

主要思想:贪心每一次都从前往后找 找到第一个数满足 它自己的后一位比前一位大的数 然后删去 因为对于一个位数已知的数来说 位数越靠前 对它值的大小影响越大 (这是可以有严格数学证明的)//例1、删数问题(delete.cpp NOI94)//洛谷 P1106 删数问题 //2017.3.6#include <cstdio>#include <iostream>#include <s

2017-03-06 14:59:54 782

原创 洛谷 P1433 吃奶酪 (dfs)

基本的dfs要注意的地方都有注释一开始将dis设成全局变量 结果90分 还有一个点TLE 然后改成局部变量就过了 ( ̄. ̄)。。。 不知道为什么 哪位大神知道的 教教我 (○'ω'○)//P1433 吃奶酪//2017.2.28#include <iostream>#include <cstdio>#include <cmath>using namespace std;int n,

2017-02-28 17:18:44 597

原创 洛谷 P1644 跳马问题

纯深搜 没什么好说的可以写了玩玩//P1644 跳马问题//2017.2.28#include <cstdio>#include <iostream>using namespace std;int m, n, book[21][21];int tot = 0;void dfs(int x, int y){ if (x == m && y == n){ tot++;

2017-02-27 14:59:57 1080

原创 洛谷 P1808 单词分类_NOI导刊2011提高(01)

巧妙运用set特别注意核心语句中的奇巧淫技//P1808 单词分类_NOI导刊2011提高(01)#include <cstdio>#include <iostream>#include <algorithm>#include <string>#include <cstring>#include <set>#define MAXN 100 + 2using namespace std;

2016-12-10 22:53:08 524

原创 洛谷 P1307 数字反转

其中的核心语句 是一个很好的 用于数字翻转的模板//P1307 数字反转//2016.11.26#include <iostream>#include <cstdio>using namespace std;int n, m;int main(){ scanf("%d", &n); while (n != 0){ m = m * 10 + n % 10;

2016-12-10 22:43:00 1769

原创 洛谷 P1597 语句解析

没有什么难的 主要是几个注意点//P1597 语句解析//2016.11.22#include <cstdio>using namespace std;char c1, c2;int s[3]; //关于初始化 在主程序外与在主程序内的区别 int main(){ while (scanf("%c:=%c;", &c1, &c2) == 2) //关于scanf读入时的返回值

2016-12-10 22:28:54 908

原创 洛谷 P1615 西游记公司

把题目理清楚 然后死算注意 要用longlong即可//P1615 西游记公司//2016.11.26#include <iostream>#include <cstdio>using namespace std;int a1, b1, c1, a2, b2, c2;long long n, x, y; //注意要用longlong int main(){ scanf("%d:%

2016-12-10 22:23:34 701

原创 洛谷 P1739 表达式括号匹配

水题几个注意点: 1. 可以用cnt来代替栈 2. 对于左括号与右括号 要分别处理//P1739 表达式括号匹配//2016.11.23 #include <cstdio>#include <iostream>using namespace std;char c;int cnt = 0; //用来代替栈 int main(){ while (scanf("%c", &c) =

2016-12-10 22:08:22 583

原创 关于字符串的小操作

有几个关于字符串的小操作技巧, 记录在这里:s.insert(pos, s2); 在s中下标为pos的元素前插入s2s.substr(pos, len); 返回一个string类型 包含s中下标从pos起的len个字符s.erase(pos, len); 删除s中下标从pos起的len个字符s.replace(pos, len, s2); 删除s中下标从pos起的len个字符 并在下标为po

2016-11-18 21:24:28 394

原创 洛谷 P2722 总分 Score Inflation

完全背包问题动态转移方程: f[i][j] = max(f[i - 1][j], f[i][j - c[i] + v[i])对于任意一个f[i][j] 表示选到第i个物品时 可以不选第i件物品 即f[i - 1][j] 或者在原来选过第i的基础上再选一次 即f[i][j - c[i] + v[i] 然后在利用循环数组优化到 f[j] = max(f[j], f[j - c[i] + v[

2016-11-18 10:32:46 416

原创 洛谷 P2639 [USACO09OCT]Bessie的体重问题

一开始以为是贪心 后来通过样例数据看不是的(良心的样例) 所以就用了DP其实我还是不明白为什么不是贪心 有大神能解答一下吗~~~这个动态转移方程很接近于01背包 包括我看到的很多题解 也都说这就是01背包 但我以为 这两者仅仅是类似而非一样我以为 做动规题目 不能简单简单地想着套几个模型 而是要不断地从每一个状态来分析 (当然啦 我的愚见)//P2639 [USACO09OCT]Be

2016-11-18 08:52:31 885

原创 洛谷 P2871 [USACO07DEC]手链 Charm Bracelet

简单的01背包 可以去记住模板特别注意: - i 和 j 是怎么循环的 - j 要保证大于等于 那什么 怎样才可以相减//P2871 [USACO07DEC]手链 Charm Bracelet //2016.11.15#include <cstdio>#include <iostream>#define MAXN 50000 + 1using namespace std;int n

2016-11-18 08:41:14 526

原创 洛谷 P1957 口算练习题

并不难的一条题目就几个点要注意: 1. 计算数字的长度时 要记得可能有负数 对负数要特殊处理 2. 对于这种不是很难 操作却略繁琐的题目 要先将每一步在草稿纸上分析好 再写 以便保持思路的清晰(特别是我这种思维混乱的人)//P1957 口算练习题//2016.11.13#include <cstdio>#include <iostream>#include <stdio.h>#inclu

2016-11-18 08:21:38 922

原创 洛谷 P1781 宇宙总统

简单的打擂台 来比较主要关注 cmp中的内容//P1781 宇宙总统//2016.11.13#include <cstdio>#include <iostream>#define MAXN 20 + 1using namespace std;string s[MAXN], ans;int n, num;bool cmp(string x, string y){ if (x.siz

2016-11-16 23:54:07 650

原创 洛谷 P1012 拼数

大约有两种方法 来处理 用字符串来比较两数字Solution 1://P1012 拼数//2016.11.12#include <cstdio>#include <iostream>#include <algorithm>#include <string>#include <cstring>#define MAXN 21using namespace std;int n, i;st

2016-11-16 00:31:20 628

空空如也

空空如也

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

TA关注的人

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