Delete Edges

Posted Jozky86

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Delete Edges相关的知识,希望对你有一定的参考价值。

Delete Edges

题意:

给出一个n个点的完全图,删一些三元环使得边数<n
输出所删的三元环
3<=n<=2000

题解:

肯定是结论题,但是我不会。。
结论:x+y+z=0(mod n)1<=x<y<z<=n所有解即可
证明过程可以看看下面博客讲的
讲解1
讲解2
我觉得当个结论,万一之后用到

代码:

#include<iostream>
#include<cstring>
#include<algorithm>
#include<cmath>
#include<string>
#include<vector>
#define Debug(in) cout<<#in<<"="<<(in)<<endl
#define mm(a,x) memset(a,x,sizeof(a))
#define mkp(a,b) make_pair(a,b)
#define all(x) x.begin(),x.end()
#define sz(x) (int)x.size()
#define sync std::ios::sync_with_stdio(false);std::cin.tie(0)
#define endl '\\n'
using namespace std;
typedef long long ll;
typedef pair<int,int> pii;
const int inf=0x3f3f3f3f,mod=1e9+7;
struct node{
    int x,y,z;
};
vector<node>res;
int main(void)
{
    sync;
    int n;cin>>n;
    for(int i=1;i<=n;++i)
        for(int j=i+1;j<=n;++j)
        {
            int k=((n-i-j-1+n)%n)%n+1;
            if(k<=j) continue;
            res.push_back({i,j,k});
        }
    cout<<sz(res)<<endl;
    for(auto x:res) cout<<x.x<<" "<<x.y<<" "<<x.z<<endl;
    return 0;
}
//考虑边界!!!
//Think TWICE, Code ONCE!

以上是关于Delete Edges的主要内容,如果未能解决你的问题,请参考以下文章

为啥这个代码片段说包含错误?

为什么不使用G.add_edges_from()添加边缘,匹配G.edges()?

C++ new & delete

如何绘制 tf.image.sobel_edges 返回的图像张量

无法访问 express js router.delete 中的参数

发现多个名为“edges”的方法,结果、参数类型或属性不匹配