CS Round#50 D min-races】的更多相关文章

Min Races Time limit: 1000 msMemory limit: 256 MB   In a racing championship there are N racing drivers. The drivers are divided in K classes. After a race, a driver is declared a winner if all the drivers that finish in front of him are from better…
题目传送门 /* DP:这题赤裸裸的dp,dp[i][1/0]表示第i块板放木桩和不放木桩的方案数.状态转移方程: dp[i][1] = dp[i-3][1] + dp[i-3][0] + 1; dp[i][0] = dp[i-1][1] + dp[i-1][0]; 比赛时二维dp写搓了,主要是边界情况的判断出错,比如dp[3][1] = 1,因为第3块放了木桩,其他地方不能再放,dp[3][0]同理 解释一下dp[i][1]的三种情况,可能是前面相隔2个放的方案或者是不放的方案,还有唯独在第i…
题目传送门 /* 好吧,我不是地球人,这题只要判断正方形就行了,正三角形和正五边形和正六边形都不可能(点是整数). 但是,如果不是整数,那么该怎么做呢?是否就此开启计算几何专题了呢 */ /************************************************ * Author :Running_Time * Created Time :2015-8-8 19:54:14 * File Name :B.cpp ******************************…
传送门 题意 给出一个排列,定义\(value为\sum_{i=1}^{n-1}abs(f[i+1]-f[i])\) \(swap(a[i],a[j])(i≠j)为一次交换\),询问最少的交换次数使得value最大 分析 如果f[i+1]>f[i],答案就+f[i+1]-f[i]; 如果f[i+1]<f[i],答案就+f[i]-f[i+1]; 那么我们可以找到一个pretty good solution 定义 L 为 f[i]<=n/2, R 为 f[i]>n/2, 得到L R L…
1036A - Function Height    20180907 \(ans=\left \lceil \frac{k}{n} \right \rceil\) #include<bits/stdc++.h> using namespace std; #define LL long long LL n,k; int main() { scanf("%I64d%I64d",&n,&k); printf()/n+); ; } 1036B - Diagonal…
  time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output Two boys decided to compete in text typing on the site "Key races". During the competition, they have to type a text consisting of s c…
题意:给定一个无向图,你从结点1开始走,每经过一条边需要1的时间,每条边都有一个开放时间,只有当目前所用的时间大于等于开放时间时,这条边才可以被经过.每一单位时间你都必须经过一条边,问最快什么时候可以到达N 一开始觉得当一条边未开放时,最优的策略便是在当前结点和上次经过的结点间徘徊,知道结点开放,于是最少的徘徊次数便是那条边的边权.后面发现奇偶性其实会影响答案.于是将dis分为奇偶跑pb_ds优化的dijkstra即可. PS:比赛时竟然有人三分钟把这道题切了,再一次证明了我好菜233333 #…
题意:给定一个数组A,以及一个初始值全为0的空数组B,每次可以对数组B的任意一个区间内的所有数+x,问至少几次操作能把B数组变成A数组 NOIP原题(积木大赛)升级版,话说CS怎么那么多跟NOIP原题差不多的题目,我上次还看见一道拦截导弹来着... 言归正传,一开始想贪心,后来发现可以构造出反例,想了一会没什么好办法就去看题解了.题解的解释非常巧妙,他将序列当作一堆矩形竖直排列在一起,最终答案就是矩形的分割数,如下: 看到这里我似乎也知道该怎么做了.我们考虑序列一开始只有一个矩形的状况,加入一个…
[题目链接]:https://csacademy.com/contest/round-36/task/bicycle-rental/ [题意] 让你从n辆车中选一辆车; 每一辆车有3个属性 1.到达车的身边的时刻 2.车什么时候开始能够被使用 3.车到达它家所需时间; 问你到家的最早时刻. [题解] 车如果晚于可用时间,a+c 否则b+c 取最小值就好 [Number Of WA] 0 [反思] 手速题 [完整代码] #include <bits/stdc++.h> using namespa…
[Link]:https://csacademy.com/contest/round-39/task/seven-segment-display/ [Description] 0..9各自有一个数字,代表组成它需要几根棍子; 给你k根棍子,然后问你这k根棍子能够组成的最小数字是多少; [Solution] 数位DP; 设b[0..9]表示对应下标的数码要多少根棍子组成; 设f[i]表示i根棍子能否组成一个数字,如果能的话,组成的数字最小是由几个数码组成的; (为INF表示不能组成); f[0]…