topcoder 643 DIV2
太弱了,太弱了!
A:基本的判断吧,然后就是边界问题,写了好久,结果发现时房间第二个交的。。
B:真心跪了,还好想出来了,思路想的太慢太慢,结果交上去,落后太多,不过HACK时很多人挂了,
这也是DIV1的A题。做法是:
如果对于一个long long 的数质因数分解师很难做到的。
但是题目告诉了m/2个数,m是分解后质因数的个数。
然后我们想先刷法求出1-10^6的质因数。
如果n有大于10^6的质因数最多2个(n<=10^18)对吧。
然后已经写出了1个,一定会写出一个。
所以 我们对其用1-10^6的素数刷选。
留下的n!=1的也是素数。保存的数再排序。
C:题给跪了,
看的出来时比较简单的题目,比以前的题目都要简单,可就是想不出。
看看别人的代码,只剩下ORZ。
#include <string>
#include <vector>
#include<iostream>
#include<string.h>
#include<algorithm>
#include<cmath> using namespace std; typedef long long ll;
int dp[][][];
int b[][][]; vector<int>mp[];
#define inf 0x3f3f3f
int n;
int son[]; class TheKingsTree {
public: int dfs(int u,int red,int green)
{
if (b[u][red][green]) return dp[u][red][green]; b[u][red][green]=;
int c1=red+;
int c2=green+;
for (int i=;i<mp[u].size();i++)
{
c1+=dfs(mp[u][i],red+,green);
c2+=dfs(mp[u][i],red,green+);
}
return dp[u][red][green]=min(c1,c2);
}
int getNumber(vector <int> parent) {
for (int i=;i<parent.size();i++)
mp[parent[i]].push_back(i+); return dfs(,,);
}
}; // Powered by FileEdit
// Powered by TZTester 1.01 [25-Feb-2003]
// Powered by CodeProcessor
我把我理解的大概写一下:
DFS(0,0,0)是从节点0开始遍历 且其子节点red=0,green=0;
还要记录状态是否保存了。记忆花搜索
c1=red+1;(采用的是一种我认为的倒序方式)
当前节点为red 然后要加上其值,
c1+=dfs(v,red+1,green);
是把v染成red的值。c1要加上其值。
C2是代表green 依次类推
PS:这种方程在比赛中时怎么也写不出来的。
topcoder 643 DIV2的更多相关文章
- topcoder 594 DIV2 foxandclassroom
暴力枚举 1 #include <iostream> #include <vector> #include <string> using namespace std ...
- ACM学习历程—TopCoder SRM691 Div2
这是我的第一次打TC,感觉打的一般般吧.不过TC的题目确实挺有意思的. 由于是用客户端打的,所以就不发题目地址了. 300分的题: 这题大意是有一段序列只包含+和数字0~9. 一段序列的操作是,从头扫 ...
- TopCoder SRM596 DIV2 1000: SparseFactorialDiv2
题意: For an integer n, let F(n) = (n - 0^2) * (n - 1^2) * (n - 2^2) * (n - 3^2) * ... * (n - k^2), wh ...
- topcoder 649 DIV2
8 A:模拟 9:B:终于看懂题目... 题意:最多分解K次 每分钟一个数可以分解成两个数 或者-1: 关键字:DP,记忆花搜索. DP[I][J]=min(dp[i][j],1+max(dp[ii] ...
- Topcoder 658 650 point
Topcoder 658 div2 500 加强版 不过给了<=20,暴力肯定不行. 然后想DP方程,先二分可能需要的最大次数mid; 然后根据 mid 构造 DP方程. 假设x[i]需要 x个 ...
- Topcoder SRM 643 Div1 250<peter_pan>
Topcoder SRM 643 Div1 250 Problem 给一个整数N,再给一个vector<long long>v; N可以表示成若干个素数的乘积,N=p0*p1*p2*... ...
- Topcoder Srm 673 Div2 1000 BearPermutations2
\(>Topcoder \space Srm \space 673 \space Div2 \space 1000 \space BearPermutations2<\) 题目大意 : 对 ...
- Topcoder Srm 671 Div2 1000 BearDestroysDiv2
\(>Topcoder \space Srm \space 671 \space Div2 \space 1000 \space BearDestroysDiv2<\) 题目大意 : 有一 ...
- Codeforce Round #643 #645 #646 (Div2)
codeforce Round #643 #645 #646 div2 Round #643 problem A #include<bits/stdc++.h> using namespa ...
随机推荐
- centos6.3安装nginx
一般使用linux系统的不少网友可能都是直接使用一键安装包进行安装的,以前作者也这样,但是很多时候这些一键安装方便是方便但是可能在升级及其他很多地方不是很好,本文就说下在centos6.3安装ngin ...
- spyder常用快捷键
Ctrl + 1: 注释/反注释 Ctrl + 4/5: 块注释/块反注释 Ctrl + L: 跳转到行号 Tab/Shift + Tab: 代码缩进/反缩进 Ctrl +I:显示帮助
- python中split与join
1.split个人最喜欢的就是它能使输入的一连串数字变为list. str=raw_input("some ") str2=str.split(" ") str ...
- JavaScript高级程序设计之寄生组合式继承
在继承中常会出现两个问题: 父类的属性变成了子类的原型 构造器指向混乱 寄生组合式继承解决了这样的问题: 属性继承到属性 原型继承到原型 构造器指向明确 // 父类 var Super = funct ...
- Iframe跨域Session丢失的问题
很久之前做的一个使用插件实现了图片批量上传,是通过IFrame加载上传面板的,使用google的chrome上传成功了就没怎么理了,最近同事测试时(使用的是360安全浏览器)老是出现上传不了图片的问题 ...
- mysql TRUNCATE
保留小数点 select truncate(field1,2) from table1 field3 字段类型为decimal(20,3)
- 关于Swift中实现Lazy initialize的方式
在oc中我们通过 -(CardMatchingGame *)game { if(!_game) _game=[[CardMatchingGame alloc] initWithCardCount:[s ...
- firebreath 在谷歌和火狐浏览器下的调试 以及打包
在寻找插件开发资料的过程中找到了一个开发浏览器插件的开源项目——firebreath firebreath的安装以及测试我就不再叙述了,可以参考大神的文章 . http://www.blogjava. ...
- 010--VS2013 C++ 平面地图贴图
先准备好地图的小图片: //全局变量HDC mdc;HBITMAP fullmap;const int rows = 8, cols = 8; //-------------------------- ...
- 阅读verilog程序总结
1.写程序先直接写出时钟信号 //-----------------产生串行时钟scl,为输入时钟的二分频--------- always@(negedge clk)//二分频表示频率小了,周期大了 ...