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++知识库 -> 9.3pm -> 正文阅读

[C++知识库]9.3pm

a.亲密数对

题很简单,要注意两个数都不能超过n的范围

b.吉祥数

由于n<8就暴力做,要注意要把所有的新数算出来再淘汰

c.二叉树输出

题意就是构造好树后,再先序遍历

#include<bits/stdc++.h>
using namespace std;
struct tir {
	char q;
	int num;
	tir *lc;
	tir *rc;
};
int i=0;
inline void pr(tir *p,string a,string b,int x,int y) {
	if(i<b.length()) {
		p->q=a[i];
		p->num=0;
		p->lc=new tir;
		p->rc=new tir;
		int u=i,k=b.find(a[i]);
		if(k-1!=x){
			i++;
			pr(p->lc,a,b,x,k);
			p->num=p->lc->num;
		} else {
			p->lc=NULL;
		}
		if(k+1!=y){
			i++;
			pr(p->rc,a,b,k,y);
			p->num+=p->rc->num;
		} else {
			p->rc=NULL;
		}
		if(p->num==0) p->num=1;
	}
}
inline void po(tir *p) {
	if(p!=NULL) {
		for(int i=1;i<=p->num;i++) cout<<p->q;
		cout<<endl;
		po(p->lc);
		po(p->rc);
	}
}
int main() {
	string a,b;
	cin>>a>>b;
	tir *p=new tir;
	p->lc=NULL;
	p->rc=NULL;
	int y=b.length(),x=-1;
	pr(p,a,b,x,y);
	po(p);
	return 0;
}
/*
abdec
dbeac

*/

d.关系网络

弗洛伊德板题

e.fib的Sn

一开始是根据公式f_{n}=\frac{1}{\sqrt{5}}\left \{ \left ( \frac{1+\sqrt{5}}{2} \right )^{n} -\left ( \frac{1-\sqrt{5}}{2} \right )^{n}\right \}用等比数列求和得出的 Sn 就等于f_{n+2}-1 然后用矩阵乘法就可以了

#include<bits/stdc++.h>
using namespace std;
#define ll long long
ll mod;
ll n,f[2],a[2][2];
void mul(ll f[2],ll a[2][2]) {
	ll c[2];
	memset(c,0,sizeof(c));
	for(int j=0; j<2; j++)
		for(int k=0; k<2; k++)
			c[j]=(c[j]+f[k]*a[k][j]%mod)%mod;
	memcpy(f,c,sizeof(c));
}
void mulself(ll a[2][2]) {
	ll c[2][2];
	memset(c,0,sizeof(c));
	for(int i=0; i<2; i++)
		for(int j=0; j<2; j++)
			for(int k=0; k<2; k++)
				c[i][j]=(c[i][j]+a[i][k]*a[k][j]%mod)%mod;
	memcpy(a,c,sizeof(c));
}
int main() {
	cin>>n>>mod;
	n+=2;
	ll f[2]= {0,1};
	ll a[2][2]= {{0,1},{1,1}};
	for(; n; n>>=1) {
		if(n&1) mul(f,a);
		mulself(a);
	}
	f[0]--;
	f[0]+=mod;
	f[0]%=mod;
	cout<<f[0];
}
/*
2000000000 1000000010

*/

f.三角形

显然,总体思路应为:【三角形数量】等于【任选三个点的方案数】减去【三点共线的方案数】

共有 (n+1)(m+1) 个点,故【任选三个点的方案数】为C_{\left ( n+1 \right )*\left ( m+1 \right )}^{3}\textrm{}

【三点共线的方案数】等于【横着的】加【竖着的】加【斜着的】

【横着的】指三点所在直线平行于 x 轴。共有 m+1 条横线,每条横线上有 n+1 个点,从这 n+1个点中选取 3个,方案数为\left ( m+1 \right )C_{\left ( n+1 \right )}^{3}\textrm{}

同理,【竖着的】指三点所在直线平行于 y 轴,方案数为\left ( n+1 \right )C_{\left ( m+1 \right )}^{3}\textrm{}

看来,我们现在最关心的是【斜着的】,斜着的直线按斜率正负分为两种,并且这两种的方案数是相等的。因此,我们只需要计算出斜率为正的方案数ans,再乘以 2 即可。

ans=\sum_{i=1}^{n}\sum_{j=1}^{m}\left ( n-i+1 \right )\left ( m-j+1 \right )\left ( gcd\left ( i,j \right )-1\right )

开longlong就可以过

g.加工生产调度

贪心

#include<bits/stdc++.h>
using namespace std;
struct node {
	int d,a,b,k;
	bool operator<(const node &x)const{
	if(d==x.d){
		if(d<=0)return a<x.a;
		else return b>x.b;
	}
	return d<x.d;
}
}c[40001];
int n;
int main(){
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>c[i].a;
		c[i].k=i;
	}
	for(int i=1;i<=n;i++){
		cin>>c[i].b;
		if(c[i].a<c[i].b) c[i].d=-1;
		if(c[i].a==c[i].b) c[i].d=0;
		if(c[i].a>c[i].b) c[i].d=1;
	}
	sort(c+1,c+n+1);
	int fa=c[1].a,fb=c[1].a+c[1].b;
	for(int i=2;i<=n;++i){
		fb=max(fa+c[i].a,fb)+c[i].b;
	    fa+=c[i].a;
	}
	cout<<max(fa,fb)<<endl;
	for(int i=1;i<=n;i++){
		cout<<c[i].k<<" ";
	}
	return 0;
}

h.灯泡

数学题 注意分类讨论

#include<bits/stdc++.h>
using namespace std;
double H,h,D;
int main(){
	int T;
	cin>>T;
	while(T--){
		cin>>H>>h>>D;
		double a=sqrt((H-h)*D);
		double b=D*(H-h)/H;
		if(a<=b){
			printf("%.3lf\n",D-(H-h)*D/H);
		} else if(a<=D){
			printf("%.3lf\n",D+H-2*a);
		} else {
			printf("%.3lf\n",h);			
		}
	}
}

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2021-09-04 17:19:43  更:2021-09-04 17:21:50 
 
开发: 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/23 20:12:15-

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