nyist 8 set的应用

#include<iostream>
#include<set>
#include<algorithm>
using namespace std;

class rect //类 声明公有
{ public:
int bh,a,b;
bool operator<(const rect & x) const
{
if(x.bh!=bh) return bh<x.bh ;
if(x.a!=a) return a<x.a ;
if(x.b!=b) return b<x.b ;
return 0;
}
};

#include<iostream>
#include<set>
#include<algorithm>
using namespace std;

struct rect //结构体 公有 ?
{ // ?
int bh,a,b; // ?
bool operator<(const rect & x) const // 运算符重载 小于号
{
if(x.bh!=bh) return bh<x.bh ;
if(x.a!=a) return a<x.a ;
if(x.b!=b) return b<x.b ;
return 0; // 三者相等
}
};

int main()
{
int m,n,i;
struct rect t;
set <rect>my;
set <rect>::iterator it ;
cin>>n ;
while(n--)
{
cin >>m;
while(m--)
{
cin>>t.bh>>t.a>>t.b ;
if(t.a< t.b) swap(t.a,t.b);
my.insert(t); // 插入到 set “集合”
}
for(it=my.begin();it!=my.end();it++)
cout<<(*it).bh<<" "<<(*it).a<<" " <<(*it).b<<endl ;
my.clear();

}
}

***************************************************************************************************************

#include<iostream>
#include<set>
#include<iterator>
using namespace std;
struct Rect
{
int num,length,width;
};
bool operator<(const Rect& r1,const Rect& r2)
{

return r1.num<r2.num || r1.num==r2.num && r1.length<r2.length ||r1.num==r2.num&&r1.length==r2.length &&r1.width<r2.width;
}
istream& operator>>(istream& in,Rect& r)
{

in>>r.num;
int a,b;
cin>>a>>b;
r.length=max(a,b);

r.width=min(a,b);

return in;
}
ostream& operator<<(ostream& out,const Rect& r)
{
return out<<r.num<<" "<<r.length<<" "<<r.width;
}
int main()
{

int num;

cin>>num;

while(num--)

{

set<Rect> rs;

Rect r;

int n;

cin>>n;

while(n--)

{

cin>>r;
rs.insert(r);
}

copy(rs.begin(),rs.end(),ostream_iterator<Rect>(cout,"\n"));

}
}

极目,远眺(752284118) 15:55:13
nyist 8一种排序: 用set自定义排序规则即可
#include <iostream>
#include <set>
using namespace std;
struct ju
{
int id,x,y;
bool operator <(const ju &a)const
{
if(id==a.id)
{
if(x==a.x) return y<a.y;
else return x<a.x;
}
else return id<a.id;
}
}tt;
set<ju> my;
set<ju> ::iterator it;
int main(int argc, char *argv[])
{
int t,n,i,j;
cin>>t;
while(t--)
{
cin>>n; my.clear();
for(i=0;i<n;i++)
{
cin>>tt.id>>tt.x>>tt.y;
if(tt.x<tt.y) swap(tt.x,tt.y);
my.insert(tt);
}
for(it=my.begin();it!=my.end();it++)
cout<<(*it).id<<" "<<(*it).x<<" "<<(*it).y<<endl;
}
return 0;
}

nyist 8 set的应用,布布扣,bubuko.com

时间: 2024-10-11 22:32:55

nyist 8 set的应用的相关文章

NYIST 914Yougth的最大化【二分搜索/Dinkelbach算法】

转载请注明出处:http://www.cnblogs.com/KirisameMarisa/p/4187637.html 题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=914 问题描述:有N个物体,它们的利益用v[i]表示,代价用c[i]表示.现在要在这N个物体中选取K个物体,使得选出来的这K个物体的总利益除以总代价达到最大值.即取得最大值. 问题转化:构造一个x[N]的数组,表示每个数取或不取的状态,显然每一个x[i]只有两个取值:

NYIST 1030 Yougth&#39;s Game[Ⅲ]

Yougth's Game[Ⅲ]时间限制:3000 ms | 内存限制:65535 KB难度:4 描述有一个长度为n的整数序列,A和B轮流取数,A先取,每次可以从左端或者右端取一个数,所有数都被取完时游戏结束,然后统计每个人取走的所有数字之和作为得分,两人的策略都是使自己的得分尽可能高,并且都足够聪明,求A的得分减去B的得分的结果. 输入输入包括多组数据,每组数据第一行为正整数n(1<=n<=1000),第二行为给定的整数序列Ai(-1000<=Ai<=1000). 输出对于每组数

nyist oj 138 找球号(二)(hash 表+位运算)

找球号(二) 时间限制:1000 ms  |  内存限制:65535 KB 难度:5 描述 在某一国度里流行着一种游戏.游戏规则为:现有一堆球中,每个球上都有一个整数编号i(0<=i<=100000000),编号可重复,还有一个空箱子,现在有两种动作:一种是"ADD",表示向空箱子里放m(0<m<=100)个球,另一种是"QUERY",表示说出M(0<M<=100)个随机整数ki(0<=ki<=100000100),分

nyist 289

#include <stdio.h>int dp[12888];int w[3408],d[3408]; int max(int x,int y) { return x>y?x:y; } int main(){ int n,m,i,j; while(scanf("%d%d",&n,&m)!=EOF&&(n||m)) { for(i=0;i<n;i++) scanf("%d%d",&w[i],&d

nyist oj 38 布线问题 (最小生成树 prim)

布线问题 时间限制:1000 ms  |  内存限制:65535 KB 难度:4 描述 南阳理工学院要进行用电线路改造,现在校长要求设计师设计出一种布线方式,该布线方式需要满足以下条件: 1.把所有的楼都供上电. 2.所用电线花费最少 输入 第一行是一个整数n表示有n组测试数据.(n<5) 每组测试数据的第一行是两个整数v,e. v表示学校里楼的总个数(v<=500) 随后的e行里,每行有三个整数a,b,c表示a与b之间如果建铺设线路花费为c(c<=100).(哪两栋楼间如果没有指明花费

nyist 78 圈水池

http://acm.nyist.net/JudgeOnline/problem.php?pid=78 圈水池 时间限制:3000 ms  |  内存限制:65535 KB 难度:4 描述 有一个牧场,牧场上有很多个供水装置,现在牧场的主人想要用篱笆把这些供水装置圈起来,以防止不是自己的牲畜来喝水,各个水池都标有各自的坐标,现在要你写一个程序利用最短的篱笆将这些供水装置圈起来!(篱笆足够多,并且长度可变) 输入 第一行输入的是N,代表用N组测试数据(1<=N<=10)第二行输入的是m,代表本组

nyist oj 36 最长公共子序列 (动态规划基础题)

最长公共子序列 时间限制:3000 ms  |  内存限制:65535 KB 难度:3 描述 咱们就不拐弯抹角了,如题,需要你做的就是写一个程序,得出最长公共子序列. tip:最长公共子序列也称作最长公共子串(不要求连续),英文缩写为LCS(Longest Common Subsequence).其定义是,一个序列 S ,如果分别是两个或多个已知序列的子序列,且是所有符合此条件序列中最长的,则 S 称为已知序列的最长公共子序列. 输入 第一行给出一个整数N(0<N<100)表示待测数据组数 接

nyist 67三角形面积

三角形面积时间限制:3000 ms | 内存限制:65535 KB 难度:2描述 给你三个点,表示一个三角形的三个顶点,现你的任务是求出该三角形的面积输入每行是一组测试数据,有6个整数x1,y1,x2,y2,x3,y3分别表示三个点的横纵坐标.(坐标值都在0到10000之间)输入0 0 0 0 0 0表示输入结束测试数据不超过10000组输出输出这三个点所代表的三角形的面积,结果精确到小数点后1位(即使是整数也要输出一位小数位)样例输入0 0 1 1 1 30 1 1 0 0 00 0 0 0

nyist 40 公约数和公倍数

公约数和公倍数 时间限制:1000 ms  |  内存限制:65535 KB 难度:1 描述 小明被一个问题给难住了,现在需要你帮帮忙.问题是:给出两个正整数,求出它们的最大公约数和最小公倍数. 输入 第一行输入一个整数n(0<n<=10000),表示有n组测试数据;随后的n行输入两个整数i,j(0<i,j<=32767). 输出 输出每组测试数据的最大公约数和最小公倍数 样例输入 3 6 6 12 11 33 22 样例输出 6 6 1 132 11 66 #include &l

nyist 68三点顺序

三点顺序 时间限制:1000 ms  |  内存限制:65535 KB 难度:3 描述 现在给你不共线的三个点A,B,C的坐标,它们一定能组成一个三角形,现在让你判断A,B,C是顺时针给出的还是逆时针给出的? 如: 图1:顺时针给出 图2:逆时针给出 <图1>                   <图2> 输入 每行是一组测试数据,有6个整数x1,y1,x2,y2,x3,y3分别表示A,B,C三个点的横纵坐标.(坐标值都在0到10000之间)输入0 0 0 0 0 0表示输入结束测