1 条题解

  • 0
    @ 2025-12-26 9:26:19

    cyw 的考试成绩

    题解

    其实题意就是问 1+2+3...+m=n1 + 2 + 3 ...+m = n 这个序列中,允许将任意项修改为 1-1 的最小满足等式的 mm 是多少

    sum=1+2+3...+msum=1+2+3...+m

    题目要求最小的题目数量,那么我们就尽可能少的修改 1-1,那么可以先求得最小的 mm 使得 sum>=nsum >= n

    sum>nsum > n,则我们需要通过修改 1-1 来减去 sumnsum - n,而这里可以证明 sumn<msum - n < m

    那么如果修改其中一项 +x+x1-1 ,可以使得结果变为 sum(x+1)sum - (x + 1),所以我们只需要将 sumn1sum - n - 1 这一项修改为 1-1 即可

    但是这里最小的 x=1x = 1 也就是说 sum1sum - 1 是无法到达的,此时只能多增加一道题 1-1


    标程

    #include <bits/stdc++.h>
    using namespace std;
     
    int main(){
    	int pp;scanf("%d", &pp);
    	while (pp--){
    		int x;
    		scanf("%d", &x);
    		int n = 0;
    		int ans = 0;
    		for (int i = 1; n < x; ++i){
    			n += i;
    			ans++;
    		}
    		if (n == x + 1){
    			ans++;
    		}
    		printf("%d\n", ans);
    	}
    	return 0;
    }
    • 1

    信息

    ID
    50
    时间
    1000ms
    内存
    512MiB
    难度
    7
    标签
    (无)
    递交数
    19
    已通过
    8
    上传者