CF1759B的一种奇妙的解法

"> CF1759B的一种奇妙的解法

"> 洛谷CF1759B题解 – 嘉嘉的博客
洛谷CF1759B题解

洛谷CF1759B的一种奇妙的解法

一种奇妙的解法

题意

有一个数列是 $1 sim n$ 的一种排列。丢掉了几个数,给出丢掉数的和留着的数,问它们是否能组成这个数列?

思路

我们都知道,求这样公差为 $1$ 的等差数列的和公式是

而根据输入的数据我们可以把数列和求出来,$times2$ 再平方根即可求出 $n$ !

最后确保 $n geq$ 留着的数中最大的数并且用 $n$ 套入上面的公式验证它等于输入的和。

代码

1

2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include

#include
using namespace std;
void s() {
int n, tot_lost;
cin >> n >> tot_lost;
int maxx = -1;
int tot_found = 0;
for (int i = 0; i
int x;
cin >> x;
tot_found += x;
maxx = max(maxx, x);
}
int tot = tot_found + tot_lost;
int f = sqrt(double(tot * 2));
int e = f * (f + 1) / 2;
if (e == tot && f >= maxx) cout "YES"
else cout "NO"
}
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int n;
cin >> n;
while (n--) {
s();
}
return 0;
}
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇