- 博客(10)
- 收藏
- 关注
原创 2015 百度之星初赛1 解题报告
1001 超级赛亚ACMer 贪心。首先击败战斗力不大于m的最强者,每次去找可以增强战斗力,然后能击败的最强者,把自己战斗力增加到和他一样去打。如果能打败最强的对手,就可以了。1002 找连续数 离散化,离线按k从1~1000递增的顺序,维护以每个位置为起点长度为k的最小值,最大值,以及是否有相同数。如果MAX-MIN=k-1且没有相同数,长度为k的
2015-05-30 21:36:25 1693 1
原创 Codeforces Round #305 (Div. 1) A B C
这场比赛爆零了,感觉自己还是弱。。而且有点过于care rating了。做比赛还用特别猥琐的方法,开小号,打低分号,企图使两个号中较高的分单调不降。根本没有攻克难题的魄力和勇气。 以后只打一个号就好了,实力增强了总是能涨的。这场的题应该还是偏简单的,比赛的时候还是各种2各种想不出,感谢round305暴露了我很多弱点。A Mike and Frog
2015-05-28 00:45:01 494
原创 poj 3074 Sudoku
求一个9*9的数独的解,保证有唯一解。DLX模版题,做题的时候,我发现回溯时如果不是和搜的过程刚好逆回去的话,效率会降低不少,但这不影响正确性,不知道为什么。。。#include #include #include #include #include using namespace std; #define ll long long
2015-05-21 15:20:42 508
原创 hdu4069 Squiggly Sudoku
解一个9*9的数独,行和列和普通数独一样需要出现1~9,但是它的小区域不是方形的,而是一个不规则的面积为9的图形。 DLX模版题。位运算和dfs处理小区域的边界就不说了。DLX搜解,搜到一个解以后继续搜,如果搜到第二个解则说明有多解,立即跳出。需要注意的是,搜到第一个解以后,需要保存解,不然继续搜索原来的解会被破坏。#include #include #inclu
2015-05-20 21:08:38 536
原创 福州大学第十二届程序设计竞赛 解题报告
由于这个OJ比较蛋疼,比赛时提交的代码看不到,所以就不附代码了,只说思路。A 非提的救赎 待补。B 完美的数字 求一个区间内,所有数的“完美度”的和,完美度定义为数i能分解为多少组i=A*A*B(A 预处理算出每个数的平方、立方。写一个函数fun(x)计算区间1~x的结果,题目的答案就是fun(b)-fun(a-1)。在
2015-05-03 21:25:20 1276 1
原创 hdu 5223 GCD
贪心,读到一个区间i,就用尽量小的数乘上去使得区间内每个数是ansi的倍数。最后检查一下区间gcd是否合法就行了。#include #include #include #include using namespace std;const int maxn = 1e6+10;const int mod = 1e9+7;#define ll long long ll gcd(
2015-05-02 22:59:13 590
原创 hdu 5214 Movie
给公式算n个区间的左右边界,求3个不重叠的区间,水题坑了好久。。。先计算再处理左右边界的对调,然后贪心找三个区间就行。#include #include #include #include #include #include #include using namespace std;const int maxn = 1e6+10;#define ll unsigned
2015-05-02 22:26:14 666 1
原创 FZU 2129 子序列个数
给一个序列,里面可能有相同元素,问能组成多少不同子序列。 DP。一直想用dp(i)表示到序列a1~ai的答案,一直想不出来,其实有更好的做法。我们可以用dp(i)表示最后一个元素为ai的子序列有多少,sum(i)表示dp(1)~dp(i)的和。状态转移见代码。#include #include #include #include using namespace st
2015-05-02 10:52:56 384
原创 Codeforces Round #301 (Div. 2) E
E Infinite Inversions 一个无穷的数列1,2,3......进行n(n 考虑到交换的数可能比较大,但是交换的次数相对少,可以用离散化解决。离散化以后,模拟一下操作。然后逆序对可以分为两部分考虑,一部分是被交换了的数之间的逆序对,另一部分是被交换的数与没交换的数之间的逆序对。在这个数列中,每个数是唯一的,用离散化后的值借助树状数组可以得出被交换
2015-05-02 01:07:13 651 1
原创 Codeforces Round #301 (Div. 2) 解题报告(ABCD)
A Combination Lock n位0~9密码锁两种状态之间,问最少拨多少次。注意可能越过'0'。直接上代码。。#include using namespace std; char num1[1010];char num2[1010];int main(){ int n; cin>>n; cin>>num1>>num2; int ans=0;
2015-05-01 02:58:46 952 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人