3.31

http://codeforces.com/gym/100623/attachments

A题

B题

题意:给你一个长度为w有h个单位宽的广告牌,然后给你长度为 wi 的一个单位宽的广告,问第 i 个最低能放在哪个单位上,如果不存在打印-1.

思路:一道线段树的问题,套用线段树模板就能很简单的解答了。比赛的时候没有想到用线段树真是好心塞啊

 1 #include <iostream>
 2 #include <bits/stdc++.h>
 3 using namespace std;
 4 const int maxn=200005;
 5 struct node
 6 {
 7     int l,r,cnt;
 8 } a[maxn<<2];
 9 void build(int l,int r,int k,int m)
10 {
11     a[k].l=l,a[k].r=r,a[k].cnt=m;
12     if(l==r)
13         return ;
14     int mid=(l+r)/2;
15     build(l,mid,k<<1,m);
16     build(mid+1,r,k<<1|1,m);
17     return ;
18 }
19 void init(int k,int d)
20 {
21
22     if(a[k].l==a[k].r)
23     {
24         a[k].cnt=a[k].cnt-d;
25         printf("%d\n",a[k].l);
26         return ;
27     }
28     if(a[k*2].cnt>=d)
29         init(k*2,d);
30     else if(a[k*2+1].cnt>=d)
31         init(k*2+1,d);
32     a[k].cnt=max(a[k*2].cnt,a[k*2+1].cnt);
33     return ;
34
35 }
36 int main()
37 {
38     freopen("billboard.in","r",stdin);
39     freopen("billboard.out","w",stdout);
40     int n,m,k,x;
41     while(~scanf("%d%d%d",&n,&m,&k))
42     {
43         int p=min(n,k);
44         build(1,p,1,m);
45         for(int i=0; i<k; i++)
46         {
47             scanf("%d",&x);
48             if(a[1].cnt<x)
49                 printf("-1\n");
50             else
51                 init(1,x);
52         }
53     }
54     return 0;
55 }

C题

题意:给你学生的数量和一间教室的座位的行数和列数,问你如何让学生入座才能使得行的最大值和列的最大值的最小值最大?打印此时入座方式。

思路:简单思维题,细想一下就能知道:当人数大于等于行数和列数的最小值的二倍减一时结果是行数和列数的最小值,否则是如果是偶数结果是人数的一半,若是奇数结果就是人数的一半加一。然后把单字符数组填一下就可以了。

 1 #include <iostream>
 2 #include <bits/stdc++.h>
 3 using namespace std;
 4 char s[1005][1005];
 5 int main()
 6 {
 7     freopen("class.in","r",stdin);
 8     freopen("class.out","w",stdout);
 9     int n,m,k;
10     while(~scanf("%d%d%d",&k,&n,&m))
11     {
12         memset(s,‘.‘,sizeof(s));
13         int x=min(n,m);
14         if(x*2-1<=k)
15         {
16             printf("%d\n",x);
17             for(int i=0; i<x; i++)
18                 s[i][0]=‘#‘;
19             for(int i=1; i<x; i++)
20                 s[0][i]=‘#‘;
21             k=k-x*2+1;
22             for(int i=1; i<n; i++)
23             {
24                 for(int j=1; j<m; j++)
25                 {
26                     if(k==0)
27                         break;
28                     s[i][j]=‘#‘;
29                     k--;
30                 }
31             }
32             if(k>0)
33             {
34                 for(int i=m-1; i>=x; i--)
35                 {
36                     if(k==0)
37                         break;
38                     s[0][i]=‘#‘;
39                     k--;
40                 }
41             }
42             if(k>0)
43             {
44                 for(int i=n-1; i>=x; i--)
45                 {
46                     if(k==0)
47                         break;
48                     s[i][0]=‘#‘;
49                     k--;
50                 }
51             }
52             for(int i=0; i<n; i++)
53             {
54                 for(int j=0; j<m; j++)
55                     printf("%c",s[i][j]);
56                 printf("\n");
57             }
58         }
59         else
60         {
61             if(k%2==0)
62             {
63                 printf("%d\n",k/2);
64                 for(int i=0; i<k/2; i++)
65                     s[i][0]=‘#‘;
66                 k=k-k/2;
67                 for(int j=1; j<k+1; j++)
68                     s[0][j]=‘#‘;
69                 for(int i=0; i<n; i++)
70                 {
71                     for(int j=0; j<m; j++)
72                         printf("%c",s[i][j]);
73                     printf("\n");
74                 }
75             }
76             else
77             {
78                 printf("%d\n",k/2+1);
79                 for(int i=0; i<k/2+1; i++)
80                     s[i][0]=‘#‘;
81                 for(int j=0; j<k/2+1; j++)
82                     s[0][j]=‘#‘;
83                 for(int i=0; i<n; i++)
84                 {
85                     for(int j=0; j<m; j++)
86                         printf("%c",s[i][j]);
87                     printf("\n");
88                 }
89             }
90         }
91     }
92     return 0;
93 }

D题

E题

F题

G题

H题

I题

J题

K题

时间: 2024-08-04 02:40:24

3.31的相关文章

程序员学炒股(7) 股指期货收盘价对第二天开盘价有影响吗?

很多微博和文章都说,股指期货的收盘价对第二天开盘价影响很大,因为股指多交易15分钟,因此对股市的第二天开盘价影响非常大,网上有一个文章是这样说的: “股指期货开盘早于股市15分钟,收盘又晚15分钟,国泰君安研究员曾统计,股指期货晚收盘15分钟的涨跌对于次日期指走势的预测准确率达到了70%.” 看看这个文章的作者是江恩艾略特道氏,虽然不知道是啥,但是看着还是很唬人的,再看看这篇文章的访问次数695567次,可见还是有影响力的. 如果这篇文章说的是真的话,能够预测到第二天开盘的大盘也是很不错滴,我们

adb server version (31) doesn’t match this client (36); killing… 的解决方法

今天折腾了一下Android studio,好不容易搞完了,结果在运行adb命令的时候出错了 不要着急,我们先看下这个错误是怎么出现的. 1.搞完Android studio之后也升级使用了新的sdk,并配置了环境变量 2.启动了第三方模拟器 3.之后用adb devices命令就出现了上图的错误 从报错的原因来看应该是版本不一致导致的,大概的意思是说你现在的adb版本是31,但是你client端的却是36(这里的client端我猜就是第三方的模拟器)不匹配啊. 尝试解决下,既然版本不一致,那就

UESTC 31 饭卡(Card) --背包问题

背包问题. 思路:如果m<5,此时也不能消费,所以此时答案为m m>=5: 求出背包容量为m-5,买前n-1样便宜的菜(排个序)的最大价值(即最大消费,即消费完后剩余值最接近5)最后减去最大的那个菜的价格,就得到最小的余额. 代码: #include <iostream> #include <cstdio> #include <cstring> #include <cmath> #include <algorithm> using n

Oracle性能优化之执行计划管理_超越OCP精通Oracle视频教程培训31

Oracle性能优化之执行计划管理_超越OCP精通Oracle视频教程培训31 本课程介绍: Oracle视频教程,风哥本套oracle教程培训<<Oracle数据库性能优化培训教程>>的第1/10套:Oracle性能优化之执行计划管理.主要学习Oracle性能优化简介,SQL 语句处理流程,软解析和硬解析,绑定变量及案例,游标的介绍,Oracle的优化器,执行计划的查看,SQL语句访问路径,SQL语句的连接方式,Oracle驱动表,执行计划的干预,常用hint提示的使用. 视频教

笔记:Struts 2.3.31 配置说明

复制文件到站点的 WEB-INF\lib 目录,文件列表如下,黄色突出显示的是必须加入的核心包 struts2-core-2.3.31.jar:struts2 的核心库 xwork-core-2.3.31.jar:由于Struts2是由xwork的延伸 有些类依然关联着 xwork的类 javassist-3.11.0.ga.jar:代码生成工具Hibernate用它在运行时扩展java类和实现,同cglib包 ognl-3.0.19.jar:OGNL表达式语言,struts2支持该EL fre

Struts 2.3.31 配置说明

复制文件到站点的 WEB-INF\lib 目录,文件列表如下,黄色突出显示的是必须加入的核心包 struts2-core-2.3.31.jar:struts2 的核心库 xwork-core-2.3.31.jar:由于Struts2是由xwork的延伸 有些类依然关联着 xwork的类 javassist-3.11.0.ga.jar:代码生成工具Hibernate用它在运行时扩展java类和实现,同cglib包 ognl-3.0.19.jar:OGNL表达式语言,struts2支持该EL fre

3-1 LVS-NAT集群

---- (整理)By 小甘丶 什么是集群: 集群是一组相互独立的.通过高速网络互联的计算机,它们构成了一个组,并以单一系统的模式加以管理.(Cluster就是一组计算机,它们作为一个整体向用户提供一组网络资源.这些单个的计算机系统就是集群的节点node). LVS: Linux Virtual Server的简写,意即Linux虚拟服务器 是一个虚拟的服务器集群系统,此项目在1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一. 集群宗旨: 可伸缩性(Scalability):

31个有用的系统管理员命令详解(linux)

在开始之前,你必须了解一下linux 基本知识: centos7目录结构.文件类型及权限.inode解析.信号 最常用的linux命令行快捷键.centos7 vi编辑器及环境变量的使用 Linux进程优先级及调度原理 1.Uptime 命令显示:运行时间.登陆用户数及1,5,15分钟间隔负载. # uptime 08:16:26 up 22 min,  1 user,  load average: 0.00, 0.03, 0.22 Uptime 命令仅有一个版本选项而且仅显示一天内的小时:分钟

第31章 新的设计模式

31.1 规格模式(Specitification Pattern) 31.1.1 查询筛选条件 (1)场景:根据条件从数据库的用户表中筛选出对象 (2)存在问题 ①findUserByAgeThan和findUserByName两个方法中除了if后面的判断条件不同,其他地方完全一样 ②这两个程序中唯一的变化点就是条件语句,可以将这里封装起来,后面的例子会设计一个规格类,用于封装整个条件语句. [编程实验]根据条件筛选用户表数据 //新设计模式——规格模式 //实例:实现不同条件的查询(不使用规

TWinControl的消息覆盖函数大全(41个WM_函数和31个CM_函数,它的WndProc就处理鼠标(转发)、键盘(取消拖动)、焦点、和WM_NCHITTEST一共4类消息)

注意,这些函数只有Private一种形式(也就是不允许覆盖,但仍在动态表格中): TWinControl = class(TControl) private // 41个windows消息,几乎全部消息都是私有函数(因为不需要别人来调用).很多都是覆盖消息,也有少部分是首次出现. // 总结规律:直接接受消息的函数都起一个中转站的作用,其函数内容都十分简单. // WM_PAINT第一次出现,由某些直接继承Win控件的类使用.而图形控件和自绘控件会自己响应这个消息. // TControl 类控