
ACM/ICPC_挑战程序设计竞赛
just_sort
Acdream.
展开
-
POJ NO.3684
【题意略】 【解题思路】首先考虑一下一个球的情况。此时,这只是一个单纯的物理问题。从高为H的位置下落的话需要花费的时间为T=sqrt(2*H/g)。 推出公式,在时刻T时,令k为满足kt (1)当k是偶数时,y=H-1/2*g*(T-kt)*(T-kt); (2)当k是奇数时,y=H-1/2g*(kt+t-T)*(kt+t-T); 然后考虑一下多个球的情况,回忆一下ants的做法就很容易原创 2016-07-14 15:14:53 · 547 阅读 · 0 评论 -
挑战 超大背包问题
【题意】 有n个重量和价值分别为w[i]和v[i]的物品,从这些物品中挑选总重量不超过W的物品,求所有挑选方案中价值总和的最大值。其中,1 ≤ n ≤ 40, 1 ≤ w[i], v[i] ≤ 10^15, 1 ≤ W ≤ 10^15. 【解题思路】 这个问题给人的第一感觉就是普通的01背包。不过,看完数据范围会发现,这次价值和重量都可以是非常大的数值,相比之下n比较小。使用DP求解背包原创 2016-07-14 15:53:49 · 1236 阅读 · 0 评论 -
挑战 POJ.2991 Crane
【题意】 有一个为N节的机械手,每次可以让某个关节点旋转到某一角度,问旋转操作结束之后最末端节点的坐标。 【解题方法】 当第i段与第i+1段之间的关节进行旋转时,从第i+1段到第n段都要进行旋转,类似于成段更新(成段旋转),如果把每个线段看成一个向量的话,末端的坐标等于所有向量的和。已知某个点的坐标(x,y),求逆时针旋转之后的坐标: 或 【AC code】 //POJ原创 2016-07-15 17:14:17 · 915 阅读 · 0 评论 -
挑战程序设计竞赛---POJ.2686
【题意】 大意是有一个人从某个城市要到另一个城市(点数 然后有n个马车票,相邻的两个城市走的话要消耗掉一个马车票。 花费的时间呢,是马车票上有个速率值,用边/速率就是花的时间。 问最后这个人花费的最短时间是多少 【解题方法】比较裸的状压dp了,dp[S][v]代表当前消耗了S集合的车票走到v花费的最小时间,可以用spfa来转移也可以直接转移,因为这个图是一个DAG! 【AC代码】原创 2016-07-16 10:40:59 · 1083 阅读 · 0 评论 -
挑战程序设计竞赛---POJ.3734(矩阵快速幂)
【题意】 有n个方块,现用红黄蓝绿四种颜色将他们染色,要求红色的方块和蓝色的方块个数均为偶数个,求方案数 mod 10007。 【解题方法】 如果粉刷到第i个墙砖时,使用的红色墙砖和蓝色墙砖都是偶数的方法 数有ai,使用的红色和蓝色墙砖一奇一偶的方案数为bi,使用的红色和蓝色墙砖都是奇数的 方案数为ci,那么,我们easy得到以下的递推式: 对于原创 2016-07-16 11:26:15 · 835 阅读 · 0 评论 -
挑战程序设计竞赛---POJ.3233
【题意】给定n*n的矩阵A和正整数k和m。求矩阵A的幂的和! 【解题方法】可以参见《挑战程序设计》205页! 【AC代码】 //POJ.3233 //Matrix Power Series #include #include #include #include using namespace std; struct Matrix{ int a[62][62]; }A;原创 2016-07-16 17:06:48 · 849 阅读 · 0 评论 -
挑战程序设计 &&计算几何&&POJ.1127 Jack Straws
【题意】给你一些线段,求出哪些线段是相连的,哪些是不相连的。相连包括间接相连,即这两条线段本身不直接相连,而是通过其它线段的连接而间接相连。 【解题方法】 解决这道题目的关键要解决两个问题:1.判断两条线段是否直接相连,即它们相交与否,这是一个几何问题;2.如果某两条线段不相交,那么它们是否通过其它线段的连接而间接相连。这个地方方法可以用并查集,也可以用Floyd-Warshall算法,我原创 2016-07-21 10:26:41 · 751 阅读 · 1 评论