[SCU3453] Stock Charts

题意:给出一个折线图,有N条线段,你想要把这些线段分成几个集合,使得每个集合中任意两条线段不想交

题解:

最小路径覆盖

把每条线段当成一个点,若两条线段不相交则连一条边,则问题可转化为用最少的路径数使所有点都被经过,即为最小路径覆盖

最小路径覆盖=N-二分图最大匹配

注意:连边只能往一个方向连,即表示出两点的连通性即可

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cstdlib>
 4 #include<cstring>
 5 #include<algorithm>
 6 #include<cmath>
 7 #define ll long long
 8 using namespace std;
 9
10 const int N = 110;
11
12 int T,n,m,ans,tot;
13 int a[N],b[N],dfn[N],s[N][30],g[N][N];
14 bool vis[N];
15
16 int gi() {
17   int x=0,o=1; char ch=getchar();
18   while(ch!=‘-‘ && (ch<‘0‘ || ch>‘9‘)) ch=getchar();
19   if(ch==‘-‘) o=-1,ch=getchar();
20   while(ch>=‘0‘ && ch<=‘9‘) x=x*10+ch-‘0‘,ch=getchar();
21   return o*x;
22 }
23
24 void init() {
25   ans=0;
26   memset(s,0,sizeof(s));
27   memset(g,0,sizeof(g));
28   memset(a,-1,sizeof(a));
29   memset(b,-1,sizeof(b));
30 }
31
32 bool cmp(const int &x, const int &y) {
33   return s[x][0]<s[y][0];
34 }
35
36 bool check(int u, int v) {
37   for(int i=1; i<=m; i++) {
38     if(s[u][i]>=s[v][i]) return false;
39   }
40   return true;
41 }
42
43 bool dfs(int u) {
44   for(int i=1; i<=n; i++) {
45     if(g[u][i] && !vis[i]) {
46       vis[i]=1;
47       if(dfs(b[i]) || b[i]==-1) {
48     b[i]=u,a[u]=i;
49     return true;
50       }
51     }
52   }
53   return false;
54 }
55
56 int main() {
57   T=gi();
58   while(T--) {
59     init();
60     n=gi(),m=gi();
61     for(int i=1; i<=n; i++)
62       for(int j=1; j<=m; j++) {
63     s[i][j]=gi();
64     s[i][0]=max(s[i][0],s[i][j]);
65       }
66     for(int i=1; i<=n; i++) dfn[i]=i;
67     sort(dfn+1,dfn+n+1,cmp);
68     for(int i=1; i<=n; i++) {
69       int u=dfn[i],v;
70       for(int j=i+1; j<=n; j++) {
71     v=dfn[j];
72     if(check(u,v)) g[u][v]=1;
73       }
74     }
75     for(int i=1; i<=n; i++) {
76       if(a[i]==-1) {
77     memset(vis,0,sizeof(vis));
78     if(dfs(i)) ans++;
79       }
80     }
81     printf("Case #%d: %d\n", ++tot,n-ans);
82   }
83   return 0;
84 }
时间: 2024-10-05 14:50:32

[SCU3453] Stock Charts的相关文章

HighCharts学习笔记(一)

HighChars基本概述 Highcharts是一个纯js写成的插件库,很好的外观表现可以满足任何图标需求. 开始使用chart之前进行配置 全局配置: Highcharts.setOptions({ global: { useUTC: false }}); 主配置中参数含义: $("#container").highcharts({ accessibility:无障碍的设计{ describeSingleSeries: false enabled: true keyboardNav

Qt3升至Qt4需要注意的几件事项浅谈

公司以前的项目是用Qt3写的,随着时间的推移慢慢显示出Qt3有多方面的限制,因此先公司决定用Qt4来改写这个项目,并为软件添加新功能,在此背景先编写此文章. 先扯一下没用的:gotfocus是获得焦点时触发,Lostfocus是失去焦点的时候触发.比如:新建两个文本框,当点击第一个文本框的时候,则触发第一个文本框的getfocus事件,表示第一个文本框获得了焦点,可以进行操作了.然后鼠标点击第二个文本框的时候,第一个文本框首先触发lostfocus事件,标明它已经失去焦点,无法进行操作.同时第二

Soj题目分类

-----------------------------最优化问题------------------------------------- ----------------------常规动态规划  SOJ1162 I-Keyboard  SOJ1685 Chopsticks SOJ1679 Gangsters SOJ2096 Maximum Submatrix  SOJ2111 littleken bg SOJ2142 Cow Exhibition  SOJ2505 The County

待刷题目分类

各大OJ题目归类 Posted on 2012 年 8 月 8 日 by admin ---------–最优化问题------------- --------动态规划 SOJ1162 I-Keyboard SOJ2096 Maximum Submatrix SOJ2111 littleken bg SOJ2505 The County Fair SOJ2818 QQ音速 SOJ2469 Exploring Pyramids SOJ1833 Base Numbers SOJ2009 Zeros

JavaScript chart--15款JavaScript制图表库

译文来源:http://www.sitepoint.com/15-best-javascript-charting-libraries/ 我们无法想像一个没有图表的Dashboard会是什么样.图表可以对数据进行直观有效的展示.不仅如此,图表的巧妙应用还可以提升网站的整体视觉效果. 本文将介绍一些非常好用的制作图表的JavaScript库.这些库能够帮助你完成你未来项目中的漂亮的.可定制化的图和表. 文中介绍的库大多是免费的,当然也有一些库会提供功能更加强大的付费版. 1. D3.js —— 数

Python第三方库之openpyxl(11)

Python第三方库之openpyxl(11) Stock Charts(股票图) 在工作表上按特定顺序排列的列或行中的数据可以在股票图表中绘制.正如其名称所暗示的,股票图表通常被用来说明股价的波动.然而,这张图表也可以用于科学数据.例如,你可以用一个股票图表来表示每日或每年的温度波动.您必须按照正确的顺序组织您的数据,以创建股票图表. 在工作表中组织股票图表数据是非常重要的.例如,为了创建一个简单的高低收盘价的股票图表,您应该按照这个顺序将您的数据以高.低和接近的形式排列为列标题. 尽管股票图

Aspose.Words for .NET图表教程——创建四种OOXML图表

Aspose.Words For .Net是一种高级Word文档处理API,用于执行各种文档管理和操作任务.API支持生成,修改,转换,呈现和打印文档,而无需在跨平台应用程序中直接使用Microsoft Word.此外,API支持所有流行的Word处理文件格式,并允许将Word文档导出或转换为固定布局文件格式和最常用的图像/多媒体格式. 接下来我们进入关于“使用图表”的介绍,在Aspose.Words中学会从头开始创建OOXML图表,包括柱状图.散点图.面积图和气泡图. (如果您想下载Aspos

有人男妓

http://quote.hexun.com/stock/icb.aspx?code=1&name=%A8%7B%C6%BD%C1%B9%C4%C4%C0%EF%D3%D0%C7%E8%BB%AF%CE%EF%C2%F2%A3%D1%3A%A3%B1%A3%B1%A3%B2%A3%B7%A3%B4%A3%B0%A3%B1%A3%B1%A3%B7%A3%B5 http://quote.hexun.com/stock/icb.aspx?code=1&name=%A8%7C%D5%C5%D2%B

(zhuan) Using the latest advancements in AI to predict stock market movements

Using the latest advancements in AI to predict stock market movements 2019-01-13 21:31:18 This blog is copied from: https://github.com/borisbanushev/stockpredictionai In this notebook I will create a complete process for predicting stock price moveme