手机创建网站的软件,wordpress开启ssl变慢,网站建设项目执行情况报告模板,网络运营公司排名A. Sasha and the Beautiful Array 分析#xff1a;说实话#xff0c;打比赛的时候看到这题没多想#xff0c;过了一下样例发现将数组排序一下就行#xff0c;交了就过了。刚刚写题解反应过来#xff0c;a2-a1a3-a2.....an-a(n-1) an - a1#xff0c;所以最后结果只取决…A. Sasha and the Beautiful Array 分析说实话打比赛的时候看到这题没多想过了一下样例发现将数组排序一下就行交了就过了。刚刚写题解反应过来a2-a1a3-a2.....an-a(n-1) an - a1所以最后结果只取决于最大和最小的差。
int a[N];
void solve() {int n; cin n;rep(i, 1, n) cin a[i];sort(a 1, a 1 n);int ans 0;rep(i, 2, n) {ans a[i] - a[i - 1];}cout ans endl;
} B. Sasha and the Drawing 分析同样是过了第三个样例发现只需要涂第一排和最后一排就行了而且(1,1)和(1,n)要放在最后涂因为先把别的格子涂满每涂一个格子贡献2最后(1,1)和(1,n)这两个格子每格贡献1。 void solve() {int n, k; cin n k;int cnt 4 * n - 2 - 2;int d k - cnt;//tans;if (d 0) {if (k % 2) k;cout k / 2 endl;}else {cout cnt / 2 d endl;}} C. Sasha and the Casino 题意每次下注y元输了失去y元赢了得到y*k元也就是增加y*(k-1)元如果加上下注的本金就算y*k元了。
sasha不会连续输x次也就是说如果连输x次第x1次必赢。
最后问sasha能不能依靠赌博来无限赢钱。 反思做题的时候陷入一个误区我前x场都输掉然后第x1场把剩下的钱全下注了那么只要本金足够这样不是很好赢钱吗其实不是的因为赌场不会一直让你前x场全输的可能会在第x-1场让你赢一下“刷新”一下你输的场数。还有一个很需要反思的事情明明之前一直提醒自己做题要勤列公式可是当时脑抽了一直在钻牛角尖没列公式。。。 分析
我们要保证每一轮赢的钱输的钱这样我们才能赢到无限的钱。一轮的结尾是赢的那一把因为我们一旦赢了就“刷新”了我们输的场数。
上面说了在第1~x场赌场可能会让你赢一场而如果1~x场全输了第x1场必赢。
我们可以得出一个结论1~x1场我们必赢一场这是重点
一轮中当我们在第i场1ix1赢了说明第1 ~ i-1场是输的因此我们在第i场赢的前要大于前i-1场输的钱。
可以得到公式 有yi表示第i场下注的金额 sum sum表示输的金额 win yi*(k-1)win表示在第i场赢的金额 win - sum 0 yi sum / (k-1) 说明我们第i场的下注金额yi至少是 sum/(k-1)1。 而到了第i场我们还剩下 a-sum元 因此得到了不等式sum/(k-1) 1 a-sum int k, x, a;void solve() {cin k x a;int sum 0;int f 1;rep(i, 1, x 1) {int y sum / (k - 1) 1;if (y a - sum) {//有钱下注。然后我们要假设输掉这场sum y;}else {//没钱下注就算赢了也没用f 0;break;}}//tans;if (!f) cout NO endl;else cout YES endl;
}