Day 8.27

T1

给定有向图,问每个点可以到达的点的编号最大值

如果从b可以沿反向边走到a,那么从a也可以沿正向边走到b

为了避免重复更新每个点的答案,应该按编号从大到小的顺序枚举终点,如果当前枚举的点没有被访问过,那么就把当前点当作终点,沿反向边dfs更新其他没有被访问过的点的答案

因为如果这个点曾经被访问过,那么这个点可以到达的点的编号最大值一定大于当前枚举的终点编号,所以每次只需要更新没被访问过的点即可

 1 #include <cstdio>
 2 struct E{
 3     int next,to;
 4 }e[100001];
 5 int n,m,u,v,root,sz=0,head[100001],a[100001];
 6 void insert(int u,int v)
 7 {
 8     sz++;
 9     e[sz].next=head[u];
10     head[u]=sz;
11     e[sz].to=v;
12 }
13 void dfs(int x)
14 {
15     a[x]=root;
16     for (int i=head[x];i;i=e[i].next)
17         if (a[e[i].to]==0)
18         {
19             //printf("%d->%d\n",x,e[i].to);
20             dfs(e[i].to);
21         }
22 }
23 int main()
24 {
25     scanf("%d%d",&n,&m);
26     for (int i=1;i<=m;i++)
27     {
28         scanf("%d%d",&u,&v);
29         insert(v,u);
30     }
31     for (int i=n;i>=1;i--)
32         if (a[i]==0)
33         {
34             root=i;
35             dfs(i);
36         }
37     for (int i=1;i<=n;i++) printf("%d ",a[i]);
38 }

T2

http://blog.csdn.net/greatwjj/article/details/14518345

自己做的太垃圾了……我一开始推出a[i]-i <=a[j]-j的时候,还以为这道题要用斜率优化,其实形式和原来的一样,还是LIS,但是需要优化成$O(nlogn)$……

由于要修改最少的数字使数列单调递增,所以要最大化利用数列中已有的上升子序列,其实这道题就是LIS,但是由于只能改成整数,所以还有个限制条件p[i].a-p[j].a>=p[i].n-p[j].n

 1 #include <cstdio>
 2 #include <iostream>
 3 #include <algorithm>
 4 using namespace std;
 5 struct P{
 6     int n,a;
 7 }p[100001];
 8 int n,ans=0,f[100001];
 9 bool cmp(P a,P b)
10 {
11     return a.a<b.a;
12 }
13 int main()
14 {
15     scanf("%d",&n);
16     for (int i=1;i<=n;i++)
17     {
18         f[i]=1;
19         p[i].n=i;
20         scanf("%d",&p[i].a);
21     }
22     sort(p+1,p+n+1,cmp);
23     for (int i=1;i<=n;i++)
24         for (int j=1;j<i;j++)
25             if (p[i].n>p[j].n&&p[i].a-p[j].a>=p[i].n-p[j].n)
26             {
27                 //printf("%d->%d\n",p[j].n,p[i].n);
28                 f[i]=max(f[i],f[j]+1);
29             }
30     for (int i=1;i<=n;i++) ans=max(ans,f[i]);
31     printf("%d",n-ans);
32 }

T3

?又是数学

时间: 2024-12-29 11:19:20

Day 8.27的相关文章

吉萨法律时间浪费拉丝粉;阿里山

http://www.ebay.com/cln/tmotshu/book/157890749018/2015.01.27.html http://www.ebay.com/cln/tmotshu/book/157890755018/2015.01.27.html http://www.ebay.com/cln/tmotshu/book/157890757018/2015.01.27.html http://www.ebay.com/cln/tmotshu/book/157890775018/20

10.23 linux任务计划cron10.24chkconfig工具10.25 systemd管理服务10.26 unit介绍 10.27 target介绍

- 10.23 linux任务计划cron - 10.24 chkconfig工具 - 10.25 systemd管理服务 - 10.26 unit介绍 - 10.27 target介绍 - 扩展 1. anacron http://blog.csdn.net/strikers1982/article/details/4787226  2. xinetd服(默认机器没有安装这个服务,需要yum install xinetd安装) http://blog.sina.com.cn/s/blog_46

20.27分发系统介绍;20.28expect脚本远程登录;20.29expect脚本远程执行命令;20.30expect脚本传递参数

20.27 分发系统介绍 shell项目-分发系统-expect 20.28 expect脚本远程登录 1. 安装expect [[email protected] ~]# yum install -y expect 自动远程登录 2. 创建配置1.expect脚本(远程登录) [[email protected] ~]# vim 1.expect 添加内容(自动远程登录hao2机器并执行命令) #! /usr/bin/expect set host "192.168.211.129"

Oracle SQL语言DDL和对象管理_超越OCP精通Oracle视频教程培训27

Oracle SQL语言DDL和对象管理_超越OCP精通Oracle视频教程培训27 本课程介绍: Oracle视频教程,风哥本套oracle教程培训是<<Oracle数据库SQL语言实战培训教程>>的第2/5套:Oracle SQL语言DDL和对象管理.主要学习Oracle数据库模式对象和表中可用的数据类型,表/临时表的创建与使用,索引/约束的创建与管理,视图/同义词/序列的创建和使用,触发器/存储过程/包的创建和使用. Oracle SQL语言DDL和对象管理,课程内容详细如下

outdated: 27.Shadows

这次的代码没有按照辅导代码中的来. VK_LEFT/VK_RIGHT/VK_UP/VK_DOWN控制长方体旋转,W/S/A/D/Q/E控制球移动,小键盘的8/5/4/6/7/9控制长方体移动,I/K/J/L/U/O控制光源移动. 在InitGLObject()函数中使用到的readObject()函数.setConnectivity()函数和calculatePlane()函数在3object.h中所写. readObject()函数在.txt文件中读取物体顶点数.顶点坐标.平面数.vertex

软工课设第一天 6.27

day1 姓名 王日 时间 2016年6月27日 学习内容 1)  选择java编程 2)  人员分工 编写代码: 段杰(组长).于博文.张鹏 测试用例: 陶元睿.王日(我) 美工&文档整理 杨子彤 3)  系统反馈表填写收集 4)  建立微信群,及时发布通知 所遇问题 1)  有组员java环境未搭建好 2)  由用户反馈发现的问题 游戏难度过于简单 缺乏创新点 不能存储成绩 解决方案 1)  增加金币&游戏道具加强游戏性 2)  增加难度选择 3)  添加成绩本地存储,进一步可以联网

27款经典的CSS框架

利用 CSS 框架,可以简化你的工作,提高工作效率.CSS 框架是一系列 CSS 文件的集合体,包含了基本的元素重置,页面排版.网格布局.表单样式.通用规则等代码块.下面给你推荐了27款优秀的CSS框架,你可以选用. 1. 960gs 960 像素的页面宽度似乎成为了一种设计标准,在当前各种分辨率下,能够很好地展现网页内容.提供较为常用的尺寸来简化网页设计过程,使工作简单高效. 2. YUI 2: Grids CSS 芒果曾经介绍过由雅虎开发小组推出的 YUI,而这个 YUI Grids CSS

【Aguin】第六周 6.21-6.27

6.21 最长不下降子序列 LIS有nlgn的算法.纯学dp.  Aguin 矩形嵌套 紫薯题.  Aguin 6.22 UVA 103 Stacking Boxes 升级版的n维矩形.打印一个路径就好.然而数据太亲民.  Aguin 6.23 发觉自己对dp的理解就有问题.紫薯啃的不明白. 文章也难找到合适的. 有的过于抽象.实例又容易固化思维. P1084 数字三角形4 稍微改了下就不会了.只能说没领会. 往上往下dp.  Aguin P1004 滑雪 题目没什么.代码丑.  Aguin 6

java每日小算法(27)

/* [程序27]  题目:求100之内的素数    */ package test; import java.util.Scanner; public class test { public static boolean prime(int number) { boolean flag = true; int mid = (int)Math.sqrt(number); for(int i = 2; i< mid+1; i++) { if(number % i == 0) { flag = fa

在开发板Linux上挂载"驱动"挂载不成功,出现提示server 172.27.52.100 not responding, still trying

1.在开发板具体操作步骤如下: 1.1 :设置IP ifconfig eth0 172.27.52.200 1.2 :ping通 虚拟机Linux 主机Linux ping XXX.XXX.XXX.XXX 1.3.挂接 mount -t nfs -o nolock  XXX.XXX.XXX.XXX:/work/nfs_root/first_fs  /mnt // 例如:mount -t nfs -o nolock  172.27.52.100:/work/nfs_root/first_fs  /