NOIP2008普及组
T2】排座椅
横行相同时列数+1,纵行相同时行数+1。
主要是用桶排序,因为范围太大了,用sort会超时
#include<iostream>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<stack>
#include<cstdio>
#include<queue>
#include<map>
#include<vector>
#include<set>
using namespace std;
const int maxn=1010;
const int INF=0x3fffffff;
int m,n,k,l,d;
int xi,xj,yi,yj;
int heng[1001],shu[1001];
int h[1001],s[1001];
int main(){
scanf("%d %d %d %d %d",&m,&n,&k,&l,&d); //这题数据量大,用cin肯定会超时的
int maxheng=0,maxshu=0;
for(int i=1;i<=d;i++){
scanf("%d %d %d %d",&xi,&xj,&yi,&yj);
if(xi==yi) {
int t=min(xj,yj);
if(t>maxshu) maxshu=t;
shu[t]++;
}
else if(xj==yj) {
int t=min(xi,yi);
if(t>maxheng) maxheng=t;
heng[t]++;
}
}
for(int i=1;i<=k;i++){ //桶排序 ,用sort很费时
int maxs=-1,d;
for(int j=1;j<m;j++){
if(maxs<heng[j]){
maxs=heng[j];
d=j;
}
}
heng[d]=0;
h[d]++;
}
for(int i=1;i<=l;i++){
int maxs=-1,d;
for(int j=1;j<n;j++){
if(maxs<shu[j]){
maxs=shu[j];
d=j;
}
}
shu[d]=0;
s[d]++;
} //我的四次排序:超时了 呵呵
/*
sort(heng,heng+maxheng+1,cmp);
sort(shu,shu+maxshu+1,cmp);
sort(heng,heng+k,cmp2);
sort(shu,shu+l,cmp2);
*/
for(int i=1;i<=maxheng;i++){
if(h[i]) printf("%d ",i);
}
cout<<endl;
for(int i=1;i<=maxshu;i++){
if(s[i]) printf("%d ",i);
}
return 0;
}
T3】传球游戏
感觉像是数学题
。。。但是并不是
- //知道是简单的DP
- //f[i][j]表示第i次传到第j个人手里的方法总数
- //f[i][j] = f[i-1][j-1]+f[i-1][j+1];(还要对环做一下处理)
- //边界:f[0][1] = 1;
- //解:f[m][1]
#include<iostream>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<stack>
#include<cstdio>
#include<queue>
#include<map>
#include<vector>
#include<set>
using namespace std;
const int maxn=1010;
const int INF=0x3fffffff;
//知道是简单的DP
//f[i][j]表示第i次传到第j个人手里的方法总数
//f[i][j] = f[i-1][j-1]+f[i-1][j+1];(还要对环做一下处理)
//边界:f[0][1] = 1;
//解:f[m][1];
int a[maxn][maxn];
int n,m;
int main(){
cin>>n>>m;
int l,r;
a[0][1]=1;
for(int i=1;i<=m;i++){ //传m次
for(int j=1;j<=n;j++){
if(j==1) l=n;
else l=j-1;
if(j==n) r=1;
else r=j+1;
a[i][j]=a[i-1][l]+a[i-1][r];
}
}
cout<<a[m][1]<<endl;
return 0;
}
T4】立体图
怕了怕了
看起来就好复杂
就是模拟
1 算出画布的长宽L、K
L = 4n+1+2m
k = max(3*h[i][j]+1+2*(m-i+1));
2 立方体(i, j)的左下角在画布上的坐标(x, y)
x = k - 2*(m-i)
y = 4*(j-1)+2*(m-i)+1;
3 写出Draw(i, j)函数 以画布i,j为左下角画一个方格
#include <iostream>
using namespace std; int m, n, k, l;
int h[101][101];
char canvax[1001][1001];
char block[6][8]={
"..+---+",
"./ /|",
"+---+ |",
"| | +",
"| |/.",
"+---+..",
};
void draw(int x,int y){
for(int i=0;i<6;i++){
for(int j=0;j<7;j++){ //x,y是左下角
if(block[i][j]!='.') canvax[x-5+i][y+j]=block[i][j];
}
}
}
int main(){
cin>>m>>n;
l=4*n+1+2*m;
for(int i=1;i<=m;i++){
for(int j=1;j<=n;j++){
cin>>h[i][j];
k=max(k,3*h[i][j]+1+2*(m-i+1));
}
}
for(int i=1;i<=k;i++){
for(int j=1;j<=l;j++) canvax[i][j]='.';
}
for(int i=1;i<=m;i++){
for(int j=1;j<=n;j++){
int x,y;
x=k-2*(m-i);
y=4*(j-1)+2*(m-i)+1;
while(h[i][j]>0){
h[i][j]--;
draw(x,y);
x-=3;
}
}
}
for(int i=1;i<=k;i++,cout<<endl){
for(int j=1;j<=l;j++)cout<<canvax[i][j];
}
return 0;
}
NOIP2008普及组的更多相关文章
- NOIP2008 普及组T4 立体图 解题报告-S.B.S.(施工未完成)
题目描述 小渊是个聪明的孩子,他经常会给周围的小朋友们将写自己认为有趣的内容.最近,他准备给小朋友们讲解立体图,请你帮他画出立体图. 小渊有一块面积为m*n的矩形区域,上面有m*n个边长为1的格子,每 ...
- noip2008普及组4题题解-rLq
(啊啊啊终于补到了今天的作业了) 本题地址:http://www.luogu.org/problem/show?pid=1058 题目描述 小渊是个聪明的孩子,他经常会给周围的小朋友们将写自己认为有趣 ...
- NOIP2008普及组 题解 -SilverN
T1 ISBN号码 题目描述 每一本正式出版的图书都有一个ISBN号码与之对应,ISBN码包括9位数字.1位识别码和3位分隔符, 其规定格式如“x-xxx-xxxxx-x”,其中符号“-”就是分隔符( ...
- NOIP2008普及组题解
NOIP2008普及组题解 从我在其他站的博客直接搬过来的 posted @ 2016-04-16 01:11 然后我又搬回博客园了233333 posted @ 2016-06-05 19:19 T ...
- NOIP2008普及组第3题 传球游戏
NOIP2008普及组第3题 传球游戏 时间限制: 1 Sec 内存限制: 128 MB提交: 29 解决: 16[提交][状态][讨论版][命题人:外部导入] 题目描述 上体育课的时候,小蛮的老 ...
- NOIP2008 普及组T2 排座椅 解题报告-S.B.S
题目描述 上课的时候总会有一些同学和前后左右的人交头接耳,这是令小学班主任十分头疼的一件事情.不过,班主任小雪发现了一些有趣的现象,当同学们的座次确定下来之后,只有有限的D对同学上课时会交头接耳.同学 ...
- NOIP2008 普及组T1 ISBN号码 解题报告-S.B.S.
题目描述 每一本正式出版的图书都有一个ISBN号码与之对应,ISBN码包括9位数字.1位识别码和3位分隔符,其规定格式如“x-xxx-xxxxx-x”,其中符号“-”就是分隔符(键盘上的减号),最后一 ...
- noip2008普及组3题题解-rLq
(第一次写题解,随意喷) (只是前一天的作业哈) (先凑个数) 题目描述 上体育课的时候,小蛮的老师经常带着同学们一起做游戏.这次,老师带着同学们一起做传球游戏.游戏规则是这样的:n个同学站成一个圆圈 ...
- NOIP2008 普及组T3 传球游戏 解题报告-S.B.S.
题目描述 上体育课的时候,小蛮的老师经常带着同学们一起做游戏.这次,老师带着同学们一起做传球游戏. 游戏规则是这样的:n个同学站成一个圆圈,其中的一个同学手里拿着一个球,当老师吹哨子时开始传球,每个同 ...
- NOIP2008普及组传球游戏(动态规划)——yhx
题目描述 上体育课的时候,小蛮的老师经常带着同学们一起做游戏.这次,老师带着同学们一起做传球游戏. 游戏规则是这样的:n个同学站成一个圆圈,其中的一个同学手里拿着一个球,当老师吹哨子时开始传球,每个同 ...
随机推荐
- 取消Andorid设备的严格模式
在做文件拍照选择等应用时,发现7.0以上手机需要主动关闭严格模式才能让代码不报错 通过关闭严格模式绕过fileprovider 权限的控制的方法,绕过FileProvider在应用间共享文件的限制 7 ...
- OceanBase使用OBLOADER、OBDUMPER进行导入导出
需求背景 需要定时给OB进行数据备份,并且在需要时可以全量导入,所以只能通过脚本来减少手动操作的繁琐. 脚本示例 导出脚本 #!/bin/bash # 这一步不能省,如果不设置定时运行时可能会有问题 ...
- 10 个常用的 JS 工具库,80% 的项目都在用!
Day.js 一个极简的处理时间和日期的 JavaScript 库,和 Moment.js 的 API 设计保持一样, 但体积仅有2KB. npm install dayjs 基本用法 import ...
- pgsql 查询结果和查询行数
select count(*) over () as total, * from test
- 将\u8BF7字符串转换为汉字
转发自 将\u8BF7\u9009\u62E9 字符串转为汉字的代码_javascript技巧_脚本之家 链接:https://www.jb51.net/article/25187.htm
- el-form不进行校验可能的原因
可能原因 el-form至少需要:model="你的数据form",:rules='你的校验规则' 的属性: 只能校验el-input,不能对原始input进行校验 (大坑).
- 测试elasticsearch保存时报找不到类型的错误
java测试存储数据到es时报错:...ActionRequestValidationException: Validation Failed: 1: type is missing... /** * ...
- 高精度计算_vector
#include<bits/stdc++.h> using namespace std; // return a+b; vector<int> add(vector<in ...
- FSCapture怎么取色
启动软件后 点击setting->Screen color Picker 此时箭头会变为一个吸管形状, 选择要吸取的颜色,点击鼠标左键 出现如图所示 完了复制这个十六进制颜色值
- Docker--搭建 Python + Pytest +Allure 的自动化测试环境
本文参考:https://www.cnblogs.com/poloyy/p/13954637.html 下载Jenkins镜像 docker search jenkins 推荐使用第二个:docker ...