国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【算法】模擬,高精度

這篇具有很好參考價(jià)值的文章主要介紹了【算法】模擬,高精度。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

高精度加法

?

【算法】模擬,高精度

P1601 A+B Problem(高精) - 洛谷 | 計(jì)算機(jī)科學(xué)教育新生態(tài) (luogu.com.cn)

思路就是模擬,值得注意的就是要用字符串類型輸入。存進(jìn)自己的int數(shù)組時(shí)要倒著存,因?yàn)槿绻钦娴脑?,進(jìn)位會(huì)有點(diǎn)trouble。

時(shí)間復(fù)雜度O(max(m,n))

【算法】模擬,高精度

#include<bits/stdc++.h>
using namespace std;
const int N=510;
int a[N],b[N],c[N];
signed main()
{
	string A,B;
	cin>>A>>B;
	int len=max(A.length(),B.length());
	for(int i=A.length()-1,j=1;i>=0;i--,j++)
	{
		a[j]=A[i]-'0';//倒著存 
	}
	for(int i=B.length()-1,j=1;i>=0;i--,j++)
	{
		b[j]=B[i]-'0';//倒著存 
	}
	for(int i=1;i<=len;i++)
	{
		c[i]+=a[i]+b[i];
		c[i+1]=c[i]/10;
		c[i]%=10;	
	} 
	if(c[len+1]) len++;
	for(int i=len;i>=1;--i) cout<<c[i];
	return 0;
}

高精度乘法

【算法】模擬,高精度

【算法】模擬,高精度??

P1303 A*B Problem - 洛谷 | 計(jì)算機(jī)科學(xué)教育新生態(tài) (luogu.com.cn)

#include<bits/stdc++.h>
using namespace std;
const int N=5010;
int a[N],b[N],c[N];
signed main()
{
	string A,B;
	cin>>A>>B;
	int lena=A.length(),lenb=B.length();
	int len=lena+lenb;
	for(int i=lena-1,j=1;i>=0;j++,i--)
	{
		a[j]=A[i]-'0';
	}
	for(int i=lenb-1,j=1;i>=0;j++,i--)
	{
		b[j]=B[i]-'0';
	}
	for(int i=1;i<=lena;i++)
	{
		for(int j=1;j<=lenb;j++)
		{
			c[i+j-1]+=a[i]*b[j];
		}
	}
	for(int i=1;i<=len;i++)
	{
		c[i+1]+=c[i]/10;
		c[i]%=10;
	}
	while(!c[len]) len--;
	for(int i=max(1,len);i>=1;i--) cout<<c[i];
	//注意0,0的情況 ,要輸出一個(gè)0 
	return 0;
}

模擬習(xí)題

階乘之和

P1009 [NOIP1998 普及組] 階乘之和 - 洛谷 | 計(jì)算機(jī)科學(xué)教育新生態(tài) (luogu.com.cn)

copy的題解,主要是高精的乘法和加法。要注意細(xì)節(jié)問題。

#include<bits/stdc++.h>
using namespace std;
signed main()
{
    int n,j,i,A[1005]={0},B[1005]={0};
    cin>>n;
    A[1]=B[1]=1;
    for(i=2;i<=n;i++)
	{
        for(j=1;j<100;j++)
        {
            B[j]*=i;//每一項(xiàng)都乘上i 
        }    
        for(j=1;j<100;j++)//對(duì)每一項(xiàng)進(jìn)行討論 
        {
            B[j+1]+=B[j]/10;//進(jìn)位 
            B[j]%=10;
        }    
        for(j=1;j<100;j++)
		{
            A[j]+=B[j];
            A[j+1]+=A[j]/10;
            A[j]%=10;
        }
    }
    for(i=100;i>=0&&A[i]==0;i--);
    for(j=i;j>=1;j--) printf("%d", A[j]);
    return 0;
}

魔法少女小Scarlet

P4924 [1007]魔法少女小Scarlet - 洛谷 | 計(jì)算機(jī)科學(xué)教育新生態(tài) (luogu.com.cn)

矩陣順時(shí)針,逆時(shí)針旋轉(zhuǎn)。

細(xì)節(jié)巨多,很惱人的一個(gè)題目!?。ㄉX蒻發(fā)言)

主要問題在于矩陣旋轉(zhuǎn)帶來的數(shù)值改變,要找關(guān)系。這里也是看到了題解的一個(gè)很聰明的做法,把(x,y)看成坐標(biāo)原點(diǎn),再對(duì)其討論。在題解里也看到很多佬寫題都是用函數(shù),感覺結(jié)構(gòu)會(huì)很清晰,

【算法】模擬,高精度

(太久沒寫博客了,圖片怎么轉(zhuǎn)都沒轉(zhuǎn)過來就這樣吧,擺爛.jpg)?

這里也要注意,轉(zhuǎn)完之后(j,-i)=原來的(i,j),不要小腦寫反了,保持清醒??!

#include<bits/stdc++.h>
using namespace std;
const int N=600;
int n,m;
int g[N][N],t[N][N];

signed main()
{
	cin>>n>>m;
	for(int i=1;i<=n;++i)
	{
		for(int j=1;j<=n;++j)
		{
			g[i][j]=(i-1)*n+j;
		}
	}
	while(m--)
	{
		int x,y,r,z;//z=0 表示順時(shí)針,z=1 表示逆時(shí)針
		cin>>x>>y>>r>>z;
		memset(t,0,sizeof(t));
		for(int i=x-r;i<=x+r;i++)
		{
			for(int j=y-r;j<=y+r;j++)
			{
				t[i][j]=g[i][j];
			}
		} 
		if(z==0)
		{
			for(int i=-r;i<=r;i++)
			{
				for(int j=-r;j<=r;j++)
				{ 	
					g[x+j][y-i]=t[x+i][y+j];
				}
			}
		}
		if(z==1)
		{
			for(int i=-r;i<=r;i++)
			{
				for(int j=-r;j<=r;j++)
				{
					g[x-j][y+i]=t[x+i][y+j];
				}
			}
		}
	}
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=n;j++)
		{
			cout<<g[i][j]<<" ";
		}
		cout<<endl;
	} 

	return 0;
}

?生活大爆炸版石頭剪刀布

(生活大爆炸好耶。高中疫情在家那會(huì)可愛邊吃飯邊看了,偏題bushi)

P1328 [NOIP2014 提高組] 生活大爆炸版石頭剪刀布 - 洛谷 | 計(jì)算機(jī)科學(xué)教育新生態(tài) (luogu.com.cn)

?純打表,有點(diǎn)無腦其實(shí)。。。。注意細(xì)節(jié)就好,沒有思維難度。

#include<bits/stdc++.h>
using namespace std;
const int N=600;
int n,na,nb;
int a[N],b[N];
int cnta,cntb;
signed main()
{
	cin>>n>>na>>nb;
	for(int i=0;i<na;i++) cin>>a[i];
	for(int i=0;i<nb;i++) cin>>b[i]; 
	
	for(int i=0;i<n;i++)
	{
		if(a[i%na]==0)
		{
			if(b[i%nb]==2||b[i%nb]==3) cnta++;
			else if(b[i%nb]==0) continue;
			else cntb++;
		}
		if(a[i%na]==1)
		{
			if(b[i%nb]==3||b[i%nb]==0) cnta++;
			else if(b[i%nb]==1) continue;
			else cntb++;
		}
		if(a[i%na]==2)
		{
			if(b[i%nb]==1||b[i%nb]==4) cnta++;
			else if(b[i%nb]==2) continue;
			else cntb++;
		}
		if(a[i%na]==3)
		{
			if(b[i%nb]==4||b[i%nb]==2) cnta++;
			else if(b[i%nb]==3) continue;
			else cntb++;
		}
		if(a[i%na]==4)
		{
			if(b[i%nb]==0||b[i%nb]==1) cnta++;
			else if(b[i%nb]==4) continue;
			else cntb++;
		}
	}
	cout<<cnta<<" "<<cntb;
	return 0;
}

兩只塔姆沃斯牛

P1518 [USACO2.4]兩只塔姆沃斯牛 The Tamworth Two - 洛谷 | 計(jì)算機(jī)科學(xué)教育新生態(tài) (luogu.com.cn)

?是一個(gè)模擬,沒想象中難,自我感覺很對(duì)但輸出不對(duì)看了好久,結(jié)果是方向向量有問題。

要注意在這種二維數(shù)組里坐標(biāo)要這樣畫

【算法】模擬,高精度

#include<bits/stdc++.h>
using namespace std;
const int N=600;
char g[15][15];
int tox[]= {-1, 0, 1, 0};//方向 
int toy[]={0, 1, 0, -1};
typedef pair<int,int> PII;
PII niu,ren; 
signed main()
{//能往前就往前,否則掉頭,每分鐘動(dòng)一次 
	memset(g,'*',sizeof(g));
	int n=10;
	
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=n;j++)
		{
			cin>>g[i][j];
			if(g[i][j]=='C') niu.first=i,niu.second=j;
			if(g[i][j]=='F') ren.first=i,ren.second=j;
		}
	} 
	//牛的路是固定的 	
	int nn=0,nr=0;//記錄朝向,初始都為北 
	for(int i=1;i<=100000;i++)//時(shí)間,分鐘 
	{
		int a=niu.first+tox[nn%4];
		int b=niu.second+toy[nn%4];
		if(g[a][b]=='*'||a<1||a>10||b<1||b>10)
		{
			/*a=niu.first;
			b=niu.second;*///如果前面是障礙物,則不走 
			nn++;
		}else{
			niu.first=a;//可以走,更新點(diǎn)的坐標(biāo) 
			niu.second=b;
		}
		
		int c=ren.first+tox[nr%4];
		int d=ren.second+toy[nr%4];
		if(g[c][d]=='*'||c<1||c>10||d<1||d>10)
		{
			/*c=ren.first;
			d=ren.second;*///如果前面是障礙物,則不走 
			nr++;
		}else{
			ren.first=c;
			ren.second=d;
		}
		if(niu.first==ren.first&&niu.second==ren.second)
		{
			cout<<i;
			return 0;
		}
	}
	cout<<"0";
	return 0;
}

多項(xiàng)式輸出

P126開始

P1067 [NOIP2009 普及組] 多項(xiàng)式輸出 - 洛谷 | 計(jì)算機(jī)科學(xué)教育新生態(tài) (luogu.com.cn)

字符串的展開

P1098 [NOIP2007 提高組] 字符串的展開 - 洛谷 | 計(jì)算機(jī)科學(xué)教育新生態(tài) (luogu.com.cn)?

作業(yè)調(diào)度方案

P1065 [NOIP2006 提高組] 作業(yè)調(diào)度方案 - 洛谷 | 計(jì)算機(jī)科學(xué)教育新生態(tài) (luogu.com.cn)?

幫貢排序

P1786 幫貢排序 - 洛谷 | 計(jì)算機(jī)科學(xué)教育新生態(tài) (luogu.com.cn)?

階乘數(shù)碼

P1591 階乘數(shù)碼 - 洛谷 | 計(jì)算機(jī)科學(xué)教育新生態(tài) (luogu.com.cn)?

?最大乘積

P1249 最大乘積 - 洛谷 | 計(jì)算機(jī)科學(xué)教育新生態(tài) (luogu.com.cn)?

?麥森數(shù)

P1045 [NOIP2003 普及組] 麥森數(shù) - 洛谷 | 計(jì)算機(jī)科學(xué)教育新生態(tài) (luogu.com.cn)?文章來源地址http://www.zghlxwxcb.cn/news/detail-486421.html

到了這里,關(guān)于【算法】模擬,高精度的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 洛谷題單算法1-1模擬與高精度

    發(fā)文章只是為了督促自己做題,雙非大二剛轉(zhuǎn)科班的菜菜一枚,代碼僅供參考,不足之處望理解。 ????????這題太惡心了,看完題解發(fā)現(xiàn)三種情況沒有考慮,后來給補(bǔ)上了,我的 if-else 思路可能寫的不太好,但是能過 ? ? ? ? 注意結(jié)構(gòu)體在函數(shù)中的傳參(下學(xué)期c語言II要好

    2024年02月19日
    瀏覽(22)
  • HJ57 高精度整數(shù)加法

    HJ57 高精度整數(shù)加法 1.逐位相加 按照傳統(tǒng)加減法模式,從最后一位開始,逐位相加,逢十進(jìn)一,傳統(tǒng)方式從右往左相加,可以將數(shù)字翻轉(zhuǎn),變成從左往右按照數(shù)組遍歷順序相加,最后再將結(jié)果翻轉(zhuǎn)。 時(shí)間復(fù)雜度:O(n+m) 2.利用大整形類型BigInteger實(shí)現(xiàn)

    2024年02月09日
    瀏覽(26)
  • [高精度加法與動(dòng)態(tài)規(guī)劃混合] 數(shù)樓梯

    樓梯有 N N N 階,上樓可以一步上一階,也可以一步上二階。 編一個(gè)程序,計(jì)算共有多少種不同的走法。 一個(gè)數(shù)字,樓梯數(shù)。 輸出走的方式總數(shù)。 樣例輸入 #1 樣例輸出 #1 對(duì)于 60 % 60% 60% 的數(shù)據(jù), N ≤ 50 N leq 50 N ≤ 50 ; 對(duì)于 100 % 100% 100% 的數(shù)據(jù), 1 ≤ N ≤ 5000 1 le N leq 5

    2024年01月21日
    瀏覽(17)
  • 高精度加法,減法,乘法,除法(下)(C語言)

    高精度加法,減法,乘法,除法(下)(C語言)

    前言 上一篇博客我們分享了高精度加法,減法,這一期我將為大家講解高精度乘法和高精度除法。那讓我們開始吧! 對(duì)加法和減法感興趣的話就點(diǎn)我 讓我們想想我們平時(shí)做數(shù)學(xué)時(shí)遇見乘法是怎么做的。以下圖為例。 高精度乘法也是這樣的一個(gè)思路,首先我們先把a(bǔ)和b的值儲(chǔ)存

    2024年02月04日
    瀏覽(94)
  • 高精度加法,減法,乘法,除法(上)(C語言)

    高精度加法,減法,乘法,除法(上)(C語言)

    前言 本篇內(nèi)容介紹加法和減法,如果想看乘法和除法就點(diǎn)這里-高精度乘法,除法 加,減,乘,除這些運(yùn)算我們自然信手捏來,就拿加法來說,我們要用c語言編程算a+b的和,只需讓sum = a+b即可,可是這是局限的,我們都知道int的表示的最大值為2147483647(32位和64位機(jī)器)。但

    2024年02月03日
    瀏覽(22)
  • 算法筆記——高精度算法(附源碼)

    算法筆記——高精度算法(附源碼)

    ??作者介紹:22級(jí)樹莓人(計(jì)算機(jī)專業(yè)),熱愛編程<目前在c++階段, 因?yàn)樽罱鼌⒓有滦怯?jì)劃算法賽道(白佬),所以加快了腳步,果然急迫感會(huì)增加動(dòng)力 ——目標(biāo)Windows,MySQL,Qt,數(shù)據(jù)結(jié)構(gòu)與算法,Linux,多線程,會(huì)持續(xù)分享學(xué)習(xí)成果和小項(xiàng)目的 ??作者主頁(yè):熱愛編程的

    2023年04月08日
    瀏覽(91)
  • 高精度算法詳解

    高精度算法詳解

    首先要知道為什么需要高精度算法: 高精度算法是 處理大數(shù)字 的數(shù)學(xué)計(jì)算方法,當(dāng)數(shù)字過大不能用 int 和 long long 存儲(chǔ)時(shí),我們就可以 使用string和vector類型 來存儲(chǔ)他們的每一位,然后進(jìn)行計(jì)算。 我們可以先把要輸入的兩個(gè)數(shù)字放到vector中存儲(chǔ),注意要 反著存(后邊做加法

    2024年01月17日
    瀏覽(93)
  • 高精度算法筆記·····························

    高精度算法筆記·····························

    加法 減法 乘法 除法 高精度加法的步驟: 1.高精度數(shù)字利用字符串讀入 2.把字符串 翻轉(zhuǎn) 存入兩個(gè)整型數(shù)組A、B 3.從低位到高位,逐位求和,進(jìn)位,存余 4.把數(shù)組C從高位到低位依次輸出 ????????1.2為準(zhǔn)備 ? ? ? ? 3為加法具體實(shí)現(xiàn)(0按位取反為-1,即-1時(shí)結(jié)束等價(jià)于=0) ?

    2024年01月21日
    瀏覽(92)
  • C++高精度算法

    目錄 前言:? 思路: 高精度加法: 高精度減法: 高精度乘法: 高精度除法: ?代碼: 一、高精度加法 二、高精度減法? 三、高精度乘法? 四、高精度除法 最后 ? ? ? ? 計(jì)算機(jī)最初、也是最重要的應(yīng)用就是數(shù)值運(yùn)算。在編程進(jìn)行數(shù)值運(yùn)算時(shí),有時(shí)會(huì)遇到運(yùn)算的精度要求特

    2024年02月14日
    瀏覽(96)
  • C++基礎(chǔ)算法高精度篇

    C++基礎(chǔ)算法高精度篇

    ??作者主頁(yè):慢熱的陜西人 ??專欄鏈接:C++算法 ??歡迎各位大佬??點(diǎn)贊??關(guān)注??收藏,??留言 主要講解了高精度算法的四種常用的計(jì)算 以下數(shù)字均指位數(shù) ①A + B(精度均在10^6) ②A - B (精度均在10^6) ③A * b (len(A) = 10^6, a = 1000); ④A / b (len(A) = 10^6, a = 1000); Ⅲ. Ⅰ . A

    2024年02月16日
    瀏覽(26)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包