题目链接

BZOJ2529

题解

要组成三角形,当且仅当最长边长度小于另两条边之和

我们就枚举最长边,另两条边当然是越大越好

我们将所有边排序,从小枚举并记录各个颜色的最长边

当枚举到当前边时,找到除了当前颜色外其它颜色最长边的最大值和次大值,检查一下加起来是否大于当前边长度

复杂度\(O(nlogn + nk)\)

#include<algorithm>
#include<iostream>
#include<cstring>
#include<cstdio>
#include<cmath>
#include<map>
#define REP(i,n) for (register int i = 1; i <= (n); i++)
#define mp(a,b) make_pair<int,int>(a,b)
#define cls(s) memset(s,0,sizeof(s))
#define cp pair<int,int>
#define LL long long int
using namespace std;
const int maxn = 1000005,maxm = 100005,INF = 1000000000;
inline int read(){
int out = 0,flag = 1; char c = getchar();
while (c < 48 || c > 57){if (c == '-') flag = -1; c = getchar();}
while (c >= 48 && c <= 57){out = (out << 3) + (out << 1) + c - 48; c = getchar();}
return out * flag;
}
int mx[55],co[maxn],len[maxn],id[maxn],n,K;
inline bool cmp(const int& a,const int& b){
return len[a] < len[b];
}
int main(){
K = read(); int x;
REP(i,K){
x = read();
REP(j,x) co[++n] = i,len[n] = read(),id[n] = n;
}
sort(id + 1,id + 1 + n,cmp);
int c1,c2,u;
REP(i,n){
u = id[i];
c1 = c2 = 0;
for (register int j = 1; j <= K; j++)
if (j != co[u]){
if (!c1 || mx[j] > mx[c1]) c2 = c1,c1 = j;
else if (!c2 || mx[j] > mx[c2]) c2 = j;
}
if (c1 && c2 && mx[c1] + mx[c2] > len[u]){
printf("%d %d %d %d %d %d",c1,mx[c1],c2,mx[c2],co[u],len[u]);
return 0;
}
mx[co[u]] = max(mx[co[u]],len[u]);
}
puts("NIE");
return 0;
}

BZOJ2529 [Poi2011]Sticks 【贪心】的更多相关文章

  1. [bzoj2529][Poi2011]Sticks_贪心

    Sticks bzoj-2529 Poi-2011 题目大意:给你n根木棒,每种木棒有长度和颜色,颜色共有k种,求满足条件的3根木棒使得这3根木棒颜色互不相同且可以围成三角形. 注释:$1\le n ...

  2. BZOJ2529: [Poi2011]Sticks

    2529: [Poi2011]Sticks Time Limit: 10 Sec  Memory Limit: 128 MBSec  Special JudgeSubmit: 257  Solved: ...

  3. 【bzoj2529】[Poi2011]Sticks 贪心

    题目描述 给出若干木棍,每根木棍有特定的颜色和长度.问能否找到三条颜色不同的木棍构成一个三角形.(注意这里所说的三角形面积要严格大于0) 输入 第一行给出一个整数k(3<=k<=50),表 ...

  4. BZOJ_2529_[Poi2011]Sticks_贪心

    BZOJ_2529_[Poi2011]Sticks_贪心 Description Little Johnny was given a birthday present by his grandpare ...

  5. 1270: Wooden Sticks [贪心]

    点击打开链接 1270: Wooden Sticks [贪心] 时间限制: 1 Sec 内存限制: 128 MB 提交: 31 解决: 11 统计 题目描述 Lialosiu要制作木棍,给n根作为原料 ...

  6. HDOJ 1051. Wooden Sticks 贪心 结构体排序

    Wooden Sticks Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) To ...

  7. zoj 1025Wooden Sticks(贪心)

    递增子序列的最小组数.可以直接贪心,扫一遍 #include<iostream> #include<cstring> #include<cstdio> #inclu ...

  8. HDOJ.1051 Wooden Sticks (贪心)

    Wooden Sticks 点我挑战题目 题意分析 给出T组数据,每组数据有n对数,分别代表每个木棍的长度l和重量w.第一个木棍加工需要1min的准备准备时间,对于刚刚经加工过的木棍,如果接下来的木棍 ...

  9. HDU 1051 Wooden Sticks (贪心)

    Wooden Sticks Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) To ...

随机推荐

  1. Hacknet 玩后感

    这款游戏的主题是黑客模拟.玩家需要帮助雇主搞定各种乱七八糟的需求. 你需要使用各种工具和各种linux命令行来获取对方电脑的Root权限.然后就是各种增删改查... 解密部分设计的太过简单,导致玩的时 ...

  2. Oracle和sqlserver数据类型对应

    Sqlserver类型 Oracle类型 binary     RAW(50) bit     NUMBER(2) char     CHAR(10) datetime     DATE decima ...

  3. 2018NOIP爆0记第二弹之day1

    出门进了电梯 白底黑字的告示上只有一句话 善待你一生. 湖上的白天鹅和白鹭远远厮混成一点,抱着玻璃杯里装着的小菊花,又慢悠悠溜达去了实验楼. t1 原本写过原题,结果考场上死去活来也只搞出了个nlog ...

  4. mysql以zip安装,解决the service already exists(转载)

    喵喵亲测可用: 转自:https://www.cnblogs.com/dichters/p/5929209.html mysql以zip安装, mysqld -install 报错:​The serv ...

  5. FFMS2 API 译文 [原创]

    FFMS2 又称 FFmpegSource2,参阅 https://github.com/FFMS/ffms2. 原文:https://github.com/FFMS/ffms2/blob/maste ...

  6. dvwa学习笔记之xss

    反射型Low 直接输入<script>alert(/xss/)</script>就可以发现弹窗Medium 检查源码 可以看到网站对输入字符进行了过滤,尝试双写绕过,构造< ...

  7. zip命令详解

    基础命令学习目录首页 好文链接:https://www.cnblogs.com/yinzhengjie/p/6247833.html 原文链接:https://www.cnblogs.com/ferr ...

  8. 第十周psp作业

    本周psp 本周进度条 代码累积折线图 博文字数累积折线图 饼状图

  9. No.100_第一次团队会议

    任务的确立 这次会议,我们的主要目标是确定任务: 我们的任务有以下几个选择: 学霸网站,这个项目拥有以前的前端代码,我们再使用Django后端服务.上手难度较低,环境较好. 多平台时间管理软件. 安卓 ...

  10. Alpha阶段项目Postmortem会议总结

    (一)设想和目标 1.我们的软件要解决什么问题?是否定义的很清楚?是否对典型用户和典型场景有清晰的描述? 我们的软件主要解决总是不知道在什么时间该做什么事情,或是老是忘记做一些事情的问题,通过添加事件 ...