2 条题解

  • 1
    @ 2023-12-2 14:54:31

    考虑容斥原理 时间复杂度O(1)

    #include <iostream>
    using namespace std;
    int main(){
    	int n;
    	cin>>n;
    	int a=n/3*(n/3-1)/2;
    	for(int i=1;i<=1;i++)a+=((n+3-i)/3)*((n+i)/3);
    	int b=n/7*(n/7-1)/2;
    	for(int i=1;i<=3;i++)b+=((n+7-i)/7)*((n+i)/7);
    	int c=n/21*(n/21-1)/2;
    	for(int i=1;i<=10;i++)c+=((n+21-i)/21)*((n+i)/21);	
    	cout<<a+b-c;
    	return 0;
    }
    

    信息

    ID
    87
    时间
    1000ms
    内存
    32MiB
    难度
    4
    标签
    递交数
    28
    已通过
    18
    上传者