摘要: 题目链接:http://acm.xidian.edu.cn/problem.php?id=1312 可以用队列模拟,但D题再说吧,这个只有两种操作,-1和*2; 若n > m,一直做-1; 若n = 0,而m != 0,则不可能达到 若n < m,可以从m出发,尽可能做 / 2,若不行,则做 + 1 阅读全文
posted @ 2018-05-28 16:45 Dicer 阅读(201) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://acm.xidian.edu.cn/problem.php?id=1311 先在vector直接储存值的初始位置,用vector来操作数的删除(注意每次删完后面的数都会自己定上来);关于剪枝,本题接近二分操作,复杂度很小,但注意,可以手动直接操作第一次,直接减去偶数位置的数, 阅读全文
posted @ 2018-05-28 16:37 Dicer 阅读(123) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://acm.xidian.edu.cn/problem.php?id=1310 用栈模拟整个过程,我在开始的时候先往栈中压入了一个‘m’,用来和第一个压入的y或Y判断,方便代码与后面相同,也方便栈空是的操作(原因是不怎么熟悉stack,瞎J8想 了一个操作),模拟他的全过程就好, 阅读全文
posted @ 2018-05-28 16:26 Dicer 阅读(156) 评论(0) 推荐(0) 编辑
摘要: 题目链接 :http://acm.xidian.edu.cn/problem.php?cid=1041&pid=4 dfs题目,关键在于剪枝,题目要求两相邻数之和为素数,已知奇数加奇数,偶数加偶数一定非素数,若n为奇数,围成环后定会有两个相邻数为奇数,所以n为奇数可直接减掉; 在dfs内,可对上一个 阅读全文
posted @ 2018-05-28 16:12 Dicer 阅读(142) 评论(0) 推荐(0) 编辑
摘要: 题目链接 : http://acm.xidian.edu.cn/problem.php?id=1138 说明 : 格式化输入 阅读全文
posted @ 2018-04-08 23:09 Dicer 阅读(85) 评论(0) 推荐(0) 编辑
摘要: 1 #include 2 #include 3 4 using namespace std; 5 static const int N = 100; 6 static const int INFTY = (1 q; 14 q.push(s); 15 for (int i = 0;i < n;i++ ) d[i] = INFTY; 16 d[s... 阅读全文
posted @ 2018-03-31 00:01 Dicer 阅读(142) 评论(0) 推荐(0) 编辑
摘要: 1 #include 2 #define MAX 5000003 3 #define SENTINEL 2000000000 4 using namespace std; 5 6 int L[MAX / 2 + 2], R[MAX / 2 + 2]; 7 int cnt; 8 9 void merge (int A[], int left, int... 阅读全文
posted @ 2018-03-11 17:39 Dicer 阅读(103) 评论(0) 推荐(0) 编辑
摘要: 题目链接 :https://vjudge.net/problem/Aizu-ALDS1_5_A 穷举搜索 阅读全文
posted @ 2018-03-10 14:00 Dicer 阅读(122) 评论(0) 推荐(0) 编辑
摘要: 分治法的基本思想:是将一个规模为n的原问题分解为k个规模较小的子问题,这些子问题互相独立且与原问题相同。递归地解这些子问题,然后将子问题的解合并为原问题的解。 阅读全文
posted @ 2018-03-09 11:59 Dicer 阅读(265) 评论(0) 推荐(0) 编辑
摘要: 在c++中封装好的stack,queue,list,vector中使用迭代器 定义 如vector<int>::iterator it; 数组用指针,已封装好的结构体用迭代器; lower_bound采用二分搜索; begin():返回指向容器开头的迭代器; end():返回指向容器末尾的迭代器,这 阅读全文
posted @ 2018-03-09 10:22 Dicer 阅读(282) 评论(0) 推荐(0) 编辑