BZOJ 2797 Poi2012 Squarks
来源:互联网 发布:ksvd算法去噪 编辑:程序博客网 时间:2024/05/16 06:47
题目大意:现在有
最小的数一定是
次小的数一定是
由于比
现在我们知道了
剩余数中最小的那个数一定是
剩余数中最小的那个数一定是
时间复杂度
#include <set>#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>using namespace std;int n,tot,a[100100],ans[330][330];multiset<int> m;void Check(int a3){ static int x[330]; int i,j; m.clear(); for(i=1;i<=n*(n-1)/2;i++) m.insert(a[i]); if(a[1]+a[2]+a3&1) return ; x[1]=a[1]+a[2]-a3>>1; x[2]=a[1]-a[2]+a3>>1; x[3]=-a[1]+a[2]+a3>>1; if(x[1]<0||x[2]<0||x[3]<0) return ; m.erase(m.find(x[1]+x[2])); m.erase(m.find(x[1]+x[3])); m.erase(m.find(x[2]+x[3])); for(i=4;i<=n;i++) { x[i]=*m.begin()-x[1]; if(x[i]<0) return ; for(j=1;j<i;j++) { int temp=x[j]+x[i]; if(m.find(temp)==m.end()) return ; m.erase(m.find(temp)); } } for(i=2;i<=n;i++) if(x[i]<=x[i-1]) return; for(i=1;i<=n;i++) ans[tot][i]=x[i]; ++tot;}int main(){ int i,j; cin>>n; for(i=1;i<=n*(n-1)>>1;i++) scanf("%d",&a[i]); sort(a+1,a+n*(n-1)/2+1); for(i=3;i<=n;i++) if(i==3||a[i]!=a[i-1]) Check(a[i]); cout<<tot<<endl; for(j=0;j<tot;j++,puts("")) for(i=1;i<=n;i++) printf("%d ",ans[j][i]); return 0;}
0 0
- BZOJ 2797 Poi2012 Squarks
- BZOJ 2797 [Poi2012]Squarks 数学
- bzoj 2797 [Poi2012]Squarks set 数学
- 2797: [Poi2012]Squarks
- bzoj-2797 Squarks
- BZOJ2797: [Poi2012]Squarks
- BZOJ2798/POI2012 Squarks
- BZOJ2797: [Poi2012]Squarks
- BZOJ2797: [Poi2012]Squarks
- BZOJ 2789: [Poi2012]Letters
- [BZOJ 2790]POI2012 Distance
- [BZOJ 2789]POI2012 Letters
- [BZOJ 2791]POI2012 Rendezvous
- [BZOJ 2803]Poi2012 Prefixuffix
- bzoj 2789: [Poi2012]Letters
- BZOJ 2788: [Poi2012]Festival
- BZOJ 2803: [Poi2012]Prefixuffix
- [Poi2012] bzoj 2788 Festival
- 自定义jsp标签: TagSupport与BodyTagSupport的区别 (转)
- 用matlab gui 实现打开对话框选择图像
- 第十五周项目1:用二进制文件处理学生成绩
- Redis分布式内存锁:余量扣除示例
- Android 开发规范
- BZOJ 2797 Poi2012 Squarks
- Oracle初学者需要知道的常用数据表如EMP、DEPT、SALGRADE等是如何操作的?图解操作
- C++经典面试题(十二)
- 架构师学习之路0
- n个节点的二叉树有多少种形态
- linux下FTP拒绝(ftp: connect: Connection refused)
- JAVA中的内部类--成员内部类
- lcx源码 支持 mac
- 优化特定类型的查询题