11 2015 档案
摘要:求一个数的质因数和因数都是可以采用sqrt的算法。 求质因数: vector g; void cal(int x) { int xx=x; for(int i=2;i*i g; void cal(int x) { for(int i=1;i*ii) g.push_back(x/i); } } } 刷质数:...
阅读全文
摘要:A: #include #include #include #include #include #include #include #include #include using namespace std; int n,m; int ans; int a,b; int main() { //freopen("input.txt","r",stdin); cin>>n>>m;...
阅读全文
摘要:A. #include #include #include #include #include #include #include #include #include using namespace std; int a,b,c; int ans1,ans2,ans3; int main() { //freopen("input.txt","r",stdin); cin>>...
阅读全文
摘要:题目解释:n个点对,n个数,要求求出是否存在一个增序列满足答案,并输出。 (集合规则:如果(x,y)在集合里,那么(0,0)到(x,y-1),(x-1,y)也在集合里 输入的时候也是) 首先怎么暴力怎么来,我们先对n个点对进行分类(根据差值分类),然后每一类分别从小到大排序。然后目前的解就是一次填充n个数,因为小的肯定在大的前面被填充,否则就不符合集合的定义。 然后进行判断,因为数据点没有...
阅读全文
摘要:首先我是按这篇文章来确定题目的。 poj3624 Charm Bracelet 模板题 没有要求填满,所以初始化为0就行 #include #include #include #include #include using namespace std; int w[3403]; int h[3403]; int n,m; int dp[12880+9]; int main() { ...
阅读全文
摘要:这道题被划到了动态规划里面去了,结果就是一道模拟题,懒了一点,直接用stl的优先队列,重载了一下运算符,写的时候保证只能一个在采,因为如果需要的采的次数比可以生产的次数少,那么生产的次数等于需要采的次数,算个小剪枝。 #include #include #include #include #include #include #include #include #include using ...
阅读全文
摘要:这道题题意不想说了,跑了640ms,感觉水过去了,应该能通过单调队列优化,很长时间没碰已经不知道怎么写了,就说说现在的写法吧。 状态定义很关键:dp[i][j]把前j个topic放在前i堂课. 因为这道题中的topic不能跳,必须按顺序,那么我们可以用贪心先求出最少的课程数,凭感觉证明这个贪心的做法是准确的,且找不到反例。 然后根据dp前后状态递推方程: dp[i][j]=max(dp[i...
阅读全文
摘要:1到6的卡分别各有有限制的张数,问能不能恰好分,总张数不能超过20000. 很明显是多重背包问题,上去果写了个三重循环,然后就T了,重新打开背包九讲,找到了多重背包的二进制拆分优化,把其中一维n的复杂度简化为logn的复杂度。 二进制拆分优化:就是1,2,4,2^k(满足和小于分解数最大的k),二进制优化可行的原因,因为可以用二进制数表示任意不同小于等于k的数。 注意:数组不要开小,RE了 ...
阅读全文

浙公网安备 33010602011771号