摘要:
额,开始感觉有点像多重背包的问题,但是背包太多了,要是几个背包估计还能用多维背包过去。后来想着朴素dfs,然后果然如题解所说,只能过3个,后面就太慢了。NOCOW说用DFSID,这个表示没听说过,于是找了下相关记录http://enc.tfode.com/DFSID这是一个解释,字面意思就是深度迭代的dfs,不过又说是bfs+dfs,有点搞不清楚了...看了看NOCOW上大牛的题解,大概明白了点,好像就是在dfs里添加一个深度限制,能到达这个限制就判断这次dfs成功。可是光这样还是过不去,后面又看到提出二分搜索的优化,由于肯定开始要把rails和broads排序,而且坑定先从小的几个rails 阅读全文
摘要:
4章第一题就跪..数论先不说,先说背包,大概意思简化为,n个数,无限取用,给你个组合上限,找到最大的不能组合的数。开始还是有点迷惑,没看懂,后来一想貌似就是完全背包啊...还没有完全背包的那个例子复杂...再说数论,一个开始题目里用到这样的例子, abc 3个数,ab的最大公约=m, mc的最大公约=1,证abc最大公约数=1其实这题可以转为证明ab的最大公约数是否一定能整出其他公约数,假设abc存在非0公约数d,那么d15 #include16 #include17 #include18 19 using namespace std;20 21 22 int gcd(int,int);23 阅读全文
摘要:
感觉还是类似01背包,相比于01背包直接f[i][w]=max(f[i-1][w],f[i-1][w-w[i]]+value[i]);这个的最后一个要根据当前总容量是否能整出t,是否剩余的部分>=t分情况下,开始忘了在else时f[i][j]=f[i][j-1]呢,还是不熟练啊,循环开始就该写了我的1次ac啊.... 1 /* 2 3 ID: hubiao cave 4 5 PROG: rockers 6 7 LANG: C++ 8 9 */10 11 12 13 14 #include15 16 #include17 18 #include19 20 using namespace . 阅读全文
摘要:
这题...额 我就是模拟着一条一条数完为止,4种情况,模拟过了,没想到到了第三章还有这么简单的题 1 /* 2 3 ID: hubiao cave 4 5 PROG: fence9 6 7 LANG: C++ 8 9 */ 10 11 12 13 14 #include 15 16 #include 17 18 #include 19 20 using namespace std; 21 22 23 24 int main() 25 26 { 27 28 ifstream fin("fence9.in"); 29 30 ofs... 阅读全文
摘要:
我一直以为同一个类的不同对象不能访问对方的私有变量今天看到别人问深拷贝的问题,突然想到为什么copy constructor里可以直接访问对方的私有成员指针。后来一查发现c++ private保护是在类级别不是对象级别...这要是被问到就丢人了... 阅读全文
摘要:
就是根据二叉树的中序,前序,求后序,我想法是先求出二叉树再后序出来。开始感觉想起来很混乱,后来拿笔在纸上写一写就清楚很多了这题不是很难,思路要清晰即可 1 /* 2 3 ID: hubiao cave 4 5 PROG: heritage 6 7 LANG: C++ 8 9 */10 11 12 13 14 #include15 16 #include17 18 #include19 20 using namespace std;21 22 23 string prestr,midstr;24 25 struct node26 {27 char m;28 node* l... 阅读全文
摘要:
描述一个闭合的栅栏是平面上的一些不相交的首尾相连的线段形成的多边形,有N个角(顶点) (3 #includeusing namespace std;ofstream fout ("fence4.out",ios::out);ifstream fin ("fence4.in",ios::in);const double JD = 0.005;struct Point{ double x,y;}point[201],see;struct Line{ Point start,end;}line[201];long n,len=0;bool cansee[201 阅读全文
摘要:
去的前一天还在网上看到有人说1面貌似是没有技术,就是下面几个问题,开始还有点不信..你为什么要应聘这个职位?你的成绩排名如何?为什么不是一直是第一名或第二名?在大学里做的哪个项目是你觉得最满意的?项目中遇到的最大的问题是什么?你是怎么解决的?如果你没有被CVTE招聘,你觉得是什么原因呢?如果你收到CVTE的OFFER了,有什么会阻止你来CVTE工作么?结果一去发现是3个人一起面,还全部是女hr,我忽然发现原来是真的,问的问题也是一模一样..本来打算去技术面试试水深,这么一搞,我又不敢说我只是来打酱油的,才还刚开学2个月...只好各种编咯...回来一查才发现是3人刷2人,再来笔试,我擦...浪费 阅读全文
摘要:
在USACO上做题时发现要判断两线段是否相交,表示不会,别人说算导上就有,于是找来看看第一节主要3个小问题1.有向线段p0p1,p0p2,如何判断p0p1在p0p2的顺时针还是逆时针方法叉积(p1-p0)x(p2-p0)=(x1-x0)(y2-y0)-(x2-x0)(y1-y0)若>0,p0p1在p0p2的顺时针.0&&d20)&&14 ((d3>0&&d40)))15 return true;16 //不考虑点在线段上的情况17 return false;18 19 }20 21 22 int direction(node ns,n 阅读全文
摘要:
这题我是完全不知道从何下手,何为当前最优,而且第二个人也要是最优考虑。题解给的dp,状态方程 dp[i][j]=sum[i][j]-min(dp[i+1][j],do[i][j-1]);sum[i][j]表示i到j总价值 dp[i][j]表示从i 到j里先选注意是先选人所能够获得的最优。感觉比较巧妙,值得mark下 1 /* 2 3 ID: hubiao cave 4 5 PROG: game1 6 7 LANG: C++ 8 9 */10 11 12 13 14 #include15 16 #include17 18 #include19 20 using namespace std... 阅读全文