Comet OJ - Contest #8
Comet OJ - Contest #8参赛总结——林荫
本次总结给出T3,4分析与解法(5,6以后填坑) T3:符文能量
-25 分析:提供一种和正解不沾边的做法:观察题目可知,所给入的参数a[1]和b[n]是不参与计算的。进而可得知如果不考虑精炼的话,原始式子的答案固定,即为sum(i=1,i<n)a[i+1]*b[i]。下面开始考虑精炼的情况。 手动推导式子可以得到一个神奇的发现:如果假设精炼的区间为L,R,那么答案就是a[2]*b[1]+a[3]*b[2]+a[4]*b[3]......+a[L-1]*b[L-2]+a[L]*b[L-1]*K+a[L+1]*b[L]*K^2+a[L+2]*b[L+1]*K^2.......a[R]*b[R-1]*K^2+a[R+1]*b[R]*K+a[R+2]*b[R+1]....... 然后这个问题就变成了求上述式子的最小值。 那果断DP啊。 至于方程?状态:DP[i][0]在1——i的区间内不使用精炼的最小值,DP[i][1]在1——i的区间内已经开始精炼,但是精炼未结束的最小值。DP[i][2]在1——i的区间内已经完成精炼的最小值
for(int i=1;i<n;i++) { dp[i][0]=dp[i-1][0]+sum[i]; dp[i][1]=min(dp[i-1][0]+sum[i]*k,dp[i-1][1]+sum[i]*k*k); dp[i][2]=min(dp[i-1][1]+sum[i]*k,dp[i-1][2]+sum[i]); } 标程放上! #include<iostream> #include<cstdio> using namespace std; long long int n,k,a1,a2; long long int sum[100001]; long long int dp[100001][3]; int main() { scanf("%lld%lld",&n,&k); scanf("%lld",&a1); for(int i=1;i<n;i++) { scanf("%lld%lld",&a1,&a2); sum[i]=a1*a2; } scanf("%lld",&a1); for(int i=1;i<n;i++) { dp[i][0]=dp[i-1][0]+sum[i]; dp[i][1]=min(dp[i-1][0]+sum[i]*k,dp[i-1][2]+sum[i]); } cout<<min(dp[n-1][0],min(dp[n-1][2],dp[n-1][1])); return 0; } ?T4: 题目描述 ? 菜菜太菜,但他不想种菜。 有 nnn 块土地,每块土地有一个菜值。它们之间有 mmm 条小路,每条连接两块土地,小路只能单向通行,不存在一条小路两端连接同一块土地,但可能存在两条小路两端连接的土地分别相同。如果存在一条从土地 uuu 到土地 vvv 的小路,则称 uuu 能直接到达?vvv。 菜菜可以购买一些土地,他必须在其中选择一块建造自己的家,所购买的剩下的土地都被作为菜地。因为菜菜不想种菜,所以他希望从他家能直接到达的土地中,一块菜地也没有(如果菜菜家不能直接到达任何一块土地,这也能满足他的愿望)。 菜菜提出了 qqq 个问题,每个问题给出 L,RL,RL,R ,询问如果他购买了第 LLL 到第 RRR 块之间的所有土地,那么所有满足他愿望的建造家的选址的菜值之和是多少? ? 输入描述 ? 第 111 行 333 个由空格隔开的整数 n,m,qn,qn,m,q ,分别表示土地的块数、小路的条数和问题的个数。 第 222 行 nnn 个由空格隔开的整数,第 iii 个数 aia_iai? 表示第 iii 块土地的菜值。 接下来 mmm 行,每行 222 个由空格隔开整数 ui,viu_i,v_iui?,vi?,表示第 iii 条小路从第 uiu_iui? 块土地通向第 viv_ivi? 块土地。 接下来 qqq 行,每行 222 个由空格隔开整数 li,ril_i,r_ili?,ri?,表示菜菜第 iii 个问题中购买了 [li,ri][l_i,r_i][li?,ri?] 中的所有土地。
? 输出描述 为了避免输出量过大,设 ansians_iansi? 表示第 iii 个询问的答案。你只需要输出 111 行 111 个整数 xori=1qi×ansi{rm xor}_{i=1}^qitimes ans_ixori=1q?i×ansi?,即所有询问的编号与答案的乘积依次按位异或 (c++中的64位整数 样例输入 1 4 2 2 3 5 10 6 1 4 2 3 2 3 1 3 样例输出 1 16 样例输入 2 5 6 3 114 29 219 231 165 5 4 1 2 1 3 5 3 3 2 3 4 2 2 1 2 4 5 样例输出 2 658 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |