自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 UVA - 11536 Smallest Sub-Array (从前往后遍历一遍)

一看这个题还吓了一跳,以为会很难 然而 除去一个细节错误 第二遍就ac 了首先自己构建存值数组 a[ ] ; 用小写 L 和 R 表示所求 子列左右边界先预处理  L 为开始位 , R 为 刚满足包含k 个数的 最小的 下标  (这是有解的情况)无解预处理后就直接 退出了然后 思想就是 L 边界往右移,但要保证 L- R  内始终满足条件,这就有了solve 里面第二个 while 循

2017-04-27 21:25:36 283

原创 UVA - 12325 Zombie's Treasure Chest 暴力

根据两种情况 选择不同枚举哇!  这题开始用 int 类型的数写的,只有 存最大 价值量的 mix_ 用了long long ,结果交了一遍 wa ,查了一遍 没问题啊??后来意识到 max 函数中 我用了 强制类型转换,然后 全改成 long long ,,, but   结果是乱码! 然后开始 加标记 查错,查到最后发现 输出中有一个  %d 还没改成 %lld,恶心!!#incl

2017-04-27 17:18:20 558

原创 UVA - 11925 Generating Permutations (生成排列)

就是按照一定规则 由当前序列还原为 1-n 的原数列,,,但是 题目是问 由 原数列到当前序列要经过哪些步骤,,,, 只有 1  2 两种操作没想到这题过的挺轻松,,,紫书第八章 高效算法 , 本以为这题会卡时间卡掉呢#include#include#includeusing namespace std;const int maxn = 1000;int a[maxn], n;

2017-04-26 23:17:12 307 1

原创 HDU - 5661 Claris and XOR (假异或)

这是我搜有关异或的题搜出来的题目中确实是找两个数的异或的最大值不过也好 这个题很好 , 算是阐述下异或位运算 以及 二进制的本质吧 ,,真的是 位运算啊开始就觉得应该 从高位往低位 判断,但是到一定位置会不能很好的选择,感觉想 DP ,有违背了我 开始以为的 贪心,,,然后 查了下题解,有的说正解是贪心 不是数位dp;后来想到的 : 每个位置放置 0/1  后来演算了下 感觉会

2017-04-26 21:42:29 274

原创 HDU - 5650

异或运算题意:一个集合  所有子集的所有元素  进行异或运算 的结果如题例子:{1, 2, 3} 所有子集:{1}  {2}  {3}  {1,2}  {1,3}  {2, 3}  {1,2,3} 每个元素出现次数为 : 2 的(n-1)次方;;;(算是数学定律 很容易推出来的)n == 1 只有一个数 输出就好否则 : 异运算或后结果必为 0 ;   ----------

2017-04-25 22:52:21 241

原创 HDU - 1287 (异或运算)

异或运算入门(已知 : 一定有解)#include #include using namespace std;const int maxn = 10000;int a[maxn];int ans[maxn];int n, c;void init() { for(int i = 0; i < n; ++i) scanf("%d", &a[i]);}

2017-04-24 15:33:55 335

原创 HDU - 2095

找一个 数字---出现奇数次(异或运算入门)原理:n ^ m ^ m = n ;#include #include using namespace std;int main() { int n, x, ans = 0; while(scanf("%d", &n) == 1 && n) { ans = 0; while(n--) {

2017-04-24 15:06:52 335

原创 HDU - 5776 sum 前缀数组

也算是 一个前缀数组 吧 a[i] == 0 -> a[i] 及前面串的和 是 m 倍数 a[i] == a[j] -> a[i] 和 a[j] 之间串 是 m 倍数#include <iostream>#include<cstdio>#include <cstring>using namespace std;const int maxn = 100000 + 10;in

2017-04-24 15:00:55 496

原创 HDU - 5327

找某个区间内漂亮数字的个数 很水的一个题(我主要是想 学习下前缀数组和 这个方法) 这算是 前缀数组和 的基础了吧 就当填博客了~~#include<iostream>#include<cstdio>#include<cstring>#include<set>using namespace std;const int maxn = 100000 + 10;int prm[maxn],

2017-04-24 14:48:52 465

原创 poj - 2531

欢迎视察,觉得不错您顶一个鼓励我一下,有什么意见或建议欢迎留言~~又套路了一个 dfs + 剪枝题意 : 给定 n ,按照习惯 我们看做 0 - (n-1),,题目的意思是要把这 n 个数分成 A,B 两组 要干啥呢? :任意分别从 A B 两组中 找一个数 定为 i,j 关键来了:求和---所有 ma[i][j] 的和 (ma[][] 存给定权值数组 )额,就这些,dfs 的是 0 - (n

2017-04-21 22:29:14 240

原创 UVA - 307

标准说法:dfs + 剪枝我的理解 :dfs 不是自带剪枝功效吗,对于这种类型的题?这个题类似于 刘汝佳大大的紫书上的素数环/ HDU 1016题意挺清楚的,套路化的 dfs ,没有什么太用脑力的地方我错了好久的地方是 : DFS 内部 再次调用 DFS 时,传入的 剩余小木棍的个数应该是 num-1 开始就写成 n-1 了 (智障错误我的 DFS 参数 : len--需求解长度 nlen(now

2017-04-21 21:23:35 246

原创 poj 2159

#include#include#include#includeusing namespace std;char s1[1000], s2[1000];int a1[30] = {0}, a2[30] = {0};void solve() { for(int i = 0; i < strlen(s1); ++i) { a1[s1[i] - 'A']++;

2017-04-20 22:03:20 384

原创 poj - 2159

还不太会用 这儿也是 -> #include<iostream>#include<algorithm>#include<cstdio>#include<cstring>using namespace std;char s1[1000], s2[1000];int a1[30] = {0}, a2[30] = {0};void solve() { for(int i = 0;

2017-04-20 22:00:44 262

原创 UVA - 201 小模拟?

紫书第四章的,不难,当时懒没做,,, 题意:找正方形~,题目更定了规则,有个细节(仔细看)要看清,O(∩_∩)O 不是最好的代码,思路差不多就这样: 从头遍历一遍,每个点看作正方形的左上角点,当然 之前要有数组存边的 // 突然感觉我写代码怎么跟讲题似的,,不管了 就这样吧#include<cstdio>const int maxn = 10 + 10;int h[maxn][maxn]

2017-04-18 18:58:19 300

原创 HDU - 1087 上升子序列 最大的和

题,题意都挺简单的: 找一个串的和,这个串要求 严格上升的,这个和 要求最大的 这又用到我刚贴的那个 POJ - 2533 题解中 所说的 DP 的算法,往前找满足条件的 和(值)//#include<bits/stdc++.h>#include<cstdio>#include<algorithm>#include<cstring>int main(){ int n; l

2017-04-17 11:44:33 338

原创 POJ - 2533 最长上升子序列

题意很简单,给定一串无序 数列, 找其中 严格上升子序列的 长度 开始接触时 用的DP,but 耗时多,后来又学了一下方法(很简单 怎么理解呢?看下面: 假装数列开始就是上升子序列,放入新数列中(题解中的a[]),,在这之后的每一个数,满足上升条件,放在后面,长度加一;不满足条件,替换队列中第一个大于他的数,因为后面可能会形成一个以这个数为开头的上升序列。原数列遍历完全后,形成的新串长度 即为

2017-04-17 11:20:16 237

原创 欢迎使用CSDN-markdown编辑器

算是水题吧 给定三角形的周长,求能够组成三角形的个数(此说法有bug,继续分析题意) 根据题意可知:当三角形三边各不相同时 看做 两个三角形(需特殊处理)```//#include<bits/stdc++.h> // 这是个 万能头文件,不过刚刚 vj 上 没编过#include<iostream>#include<cstdio>#include<algorithm>using na

2017-04-17 10:20:48 242 3

原创 HDU - 4486

算是水题吧给定三角形的周长,求能够组成三角形的个数(此说法有bug,继续分析题意)根据题意可知:当三角形三边各不相同时 看做 两个三角形(需特殊处理)//#include   // 这是个 万能头文件,不过刚刚 vj 上 没编过#include#include#includeusing namespace std;int main(){   

2017-04-16 22:48:26 464

原创 codeforces 707c

关于勾股定理,知一边求另外两边给定一边 长为n:n % 2 == 1 :另外两边   (n*n-1) / 2   和   (n*n+1) / 2 ;n % 2 == 0 :另外两边   (n/2  *  n/2  -  1)   和  ( n/2  *  n/2  +  1) ;#includeusing namespace std;typedef

2017-04-16 21:27:02 326

空空如也

空空如也

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

TA关注的人

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