IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> ?模拟? -> 正文阅读

[C++知识库]?模拟?

模拟就是,题目让做什么,就做什么

?

本篇收录模拟问题

3D模型

每个方块如果比相邻某个方向的高x,那它一定贡献了x的表面积,而且这样算也不会重复,在边缘处,因为开了一个值为0的大数组,所以就是贡献比0大的表面积,所以边上也不会丢掉~~~~?

#include<iostream>
#include<string>
using namespace std;

int n,m;	//长,宽 
int city[1005][1005];
int S;
char c;

int main(){
	cin>>n>>m;
	for(int i=1;i<=n;i++)
		for(int j=1;j<=m;j++){
			cin>>c;
			city[i][j]=c-'0';	//这个挺重要滴,char转int 
			if(city[i][j]!=0) S+=2;	//只要这个位置有方块,上下表面积各+1 
		}
	
	for(int i=1;i<=n;i++)
		for(int j=1;j<=m;j++){
			if(city[i][j]>city[i-1][j])
				S+=city[i][j]-city[i-1][j];//比ta上边高,必定会多贡献高的那些面面积
				
			if(city[i][j]>city[i+1][j]) 	//比下面高的贡献 
				S+=city[i][j]-city[i+1][j];
				
			if(city[i][j]>city[i][j-1]) 	//比左面 
				S+=city[i][j]-city[i][j-1];
				
			if(city[i][j]>city[i][j+1]) 	//右面 
				S+=city[i][j]-city[i][j+1];
		}
		
	cout<<S; 
}

到天宫做客

#include<iostream>
#include<string>
#include<algorithm>
#include<math.h>
using namespace std;

int n;
int m[370];	//必须待在人间的月,日 
int d[370];
int x[13]={0,31,60,91,121,152,182,213,244,274,305,335,366};
//建立一个日期部分和,这样就可以直接算出两个日期的间隔天数 
int s[370];

int main(){
	cin>>n;//必须在人间待的天数
	for(int i=1;i<=n;i++){
		cin>>m[i]>>d[i];
	} 
	for (int i=1;i<=n-1;i++)
    for (int j=i+1;j<=n;j++) 
 	if (m[j]<m[i]||m[j]==m[i]&&d[j]<d[i])
    //月数大或月数相同而日期大就交换 
    {
        swap(m[j],m[i]);
        swap(d[j],d[i]);
    } 
    
    s[1]=0;	
	 //第一天得从1月1日算起,记得不能把这一天算进去 
    for (int i=2;i<=n;i++)
    {
        s[i]= x[m[i]-1] + d[i] - (x[m[i-1]-1]  + d[i-1])- 1;
        //算出这一天和前一天间隔的天数 
    }
	sort(s+1,s+1+n+1);//将算出的间隔排序 
    cout<<round((s[n+1]*1.0)/366*86400);
	
}

营养膳食

?这道题是贪心,因为没有饭的价格之类的限制,所以就把脂肪多的放到前边,从脂肪高的开始吃

#include<iostream>
#include<string>
#include<algorithm>
#include<math.h>
using namespace std;

int n,m,k;		//最多吃m份,有n种食品,分为k类
int maxeat[105];//第i种食物能吃的最大数量就是maxeat[b[i]] 
struct fanfan{
	int a;	//脂肪数 
	int b;	//所属类别
}s[205];

int sum;

//贪心,这个函数专门为饭饭们根据脂肪值排序
bool cmp(fanfan i,fanfan j){
	return i.a>j.a;
} 

int main(){
	cin>>n>>m>>k;
	
	for(int i=1;i<=k;i++)
		cin>>maxeat[i];
		
	for(int i=1;i<=n;i++)
    	cin>>s[i].a>>s[i].b;
    	
    sort(s+1,s+1 +n,cmp);
    int i=1;
  	while(m>0 && i<=n){
  		if(maxeat[s[i].b]>0){
  			sum+=s[i].a;
  			m--;
  			maxeat[s[i].b]--;
		  }
		  i++;
	  }
	  cout<<sum;
}

这道题和上一题都涉及到了一个,有a[],b[],一一对应,要给a排序,因为他们是对应的,所以b也得跟着动——自己写cmp函数,放在sort里,既然饭有两种属性,干脆写成结构体,就可以把饭根据脂肪量排序,同时b对应关系也不会乱

攻击火星??

?

魔法照片?

这题。。复习一下排序的写法可以

#include<iostream>
#include<string>
#include<algorithm>
#include<math.h>
using namespace std;

int n,k;
struct man{
	int w;	//权值,要按这个排序 
	int d;	//序号
	int c;	//类别序号
	int num; //编号 

}people[20005];

int e[11];

bool cmp(const man &i,const man &j){
	if(i.w!=j.w)return i.w>j.w;
	return i.num<j.num;
}

int main(){
	cin>>n>>k;
	for(int i=1;i<=10;i++)
		cin>>e[i];
	for(int i=1;i<=n;i++){
		cin>>people[i].w;
		people[i].num=i;
	}
	

	sort(people+1,people+1+n,cmp);

	
	for(int i=1;i<=n;i++){
		people[i].d=i;
		people[i].c=(people[i].d-1)%10+1;
		people[i].w+=e[people[i].c];
	}
	
	sort(people+1,people+1+n,cmp);
	for(int i=1;i<=k;i++)
	cout<<people[i].num<<" ";

	
}

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2022-03-31 23:45:54  更:2022-03-31 23:48:51 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 1:55:04-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码