13 solutions

  • 1
    @ 2022-4-1 17:17:51

    这道题 看了下 up 主 的视频,然后总结了下 自己的理解。确实 这种 思路 还是要有的,可能 对于 是小白的我,刚接触 是很难想到的。再接再厉。

    #include <iostream>
    
    using namespace std;
    
    int main(void) {
    	long long ans = 0;
    	for (int a = 1; a <= 2021; ++a) {
    		for (int b = 1; b <= 2021 - a; ++b) {
    			for (int c = 1; c <= 2021 - a - b; ++c) {
    				int de = 2021 - a - b - c;// d + e 的 总和
    
    				if (de >= 2) {// 只要 d + e 可以再 分出两个整数,就代表 我们这个 五个数是成立的
    					ans+= de -1;// 但是 那我们也要 从 1 开始选择 d 的值,才能够 得到 e 的值吧。然后 才算是一种方案。
    					//比如 5 是 d + e 的总和,那么 d = 1 的时候 e = 4 依此类推 你会发现 有 四种 方案 是满足的
    					// 也就是说 de - 1 总和数 - 1 等于 两个数 满足的 方案数。
    				}
    				else {
    					break;
    				}
    			}
    		}
    	}
    
    	cout << ans << endl;
    
    	return 0;
    }
    

    Information

    ID
    106
    Time
    1000ms
    Memory
    256MiB
    Difficulty
    6
    Tags
    # Submissions
    458
    Accepted
    151
    Uploaded By