• [BZOJ2717]迷路的兔子[构造]


    构造题…当然需要推(看)一推(看)规(题)律(解)啦。。。

    其实是在Discuss那个CA的一句话题解里面翻到这个东西的。。。

    用奇怪的姿势枚举一下...先贴代码

     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 typedef long long ll;
     4 inline ll _() {
     5     ll x=0,f=1; char ch=getchar();
     6     for(;ch<'0'||ch>'9';ch=getchar())
     7         if(ch=='-')f=-f;
     8     for(;ch>='0'&&ch<='9';ch=getchar())
     9         x=x*10+ch-'0';
    10     return x*f;
    11 }
    12 #define _ _()
    13 int main() {
    14     int n=_;
    15     printf("%d
    ",n*(n-1)/2);
    16     for(int i=1;i<=(n>>1);i++)
    17         for(int j=0;j<n;j++)
    18             printf("%d %d %d
    ",j+1,(j+i)%n+1,(j+i+i)%n+1); 
    19 }

     但是为啥可以这么枚举。。。

    我咋觉得是隔板法。。。

    枚举隔板的位置。然后枚举第一个数的位置。

    因为$j->j+i->j+i+i (Mod N)$ 最多重复三次

    理性理解一下好像是对的= =

  • 相关阅读:
    2019 SDN上机第2次作业
    2019 SDN上机第1次作业
    第07组 团队Git现场编程实战
    第二次结对编程作业
    c语言之问题集
    2019春第2次课程设计实验安排
    2019年十二周总结
    第十一周总结
    第十周作业
    第九周总结
  • 原文地址:https://www.cnblogs.com/ZincSabian/p/10088977.html
Copyright © 2020-2023  润新知