第一次雙周賽-創(chuàng)新互聯(lián)

Lily 題目

在這里插入圖片描述

成都創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比龍巖網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式龍巖網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋龍巖地區(qū)。費(fèi)用合理售后完善,10多年實(shí)體公司更值得信賴。實(shí)現(xiàn)

QAQ,就是用if else if else翻譯一下題目條件QAQ沒有別的難度??!

代碼塊
#includeusing namespace std;
const int maxn = 1000;
char str[maxn];
int main()
{
    int n; cin >>n;
    for (int i = 0; i< n; i++)cin >>str[i];
    for (int i = 0; i< n; i++)
    {
        if (i == 0)
        {
            if (str[i] == '.' && str[i + 1] != 'L')
                str[i] = 'C';
        }
        else if (i == n - 1)
        {
            if (str[i] == '.' && str[i - 1] != 'L')str[i] = 'C';
        }
        else
        {
            if (str[i] == '.' && str[i - 1] != 'L' && str[i + 1] != 'L')str[i] = 'C';
        }
    }
    for (int i = 0; i< n; i++)cout<< str[i];
    return 0;
}
a*b 題目

在這里插入圖片描述

實(shí)現(xiàn)

QAQ,在寫高精度乘法的時(shí)候很認(rèn)真在寫了,所以周賽時(shí)大概沒在高精度乘法上出問題(自己記憶了自己的模板),不過在進(jìn)制轉(zhuǎn)化過程可能多考慮了幾步,但是無論如何提交都是段錯(cuò)誤,我并不理解?。∩踔猎诳荚囅滦薷牡臅r(shí)候也依然是錯(cuò)誤的,emm,后來在DDL查看了一下其他人的題解后發(fā)現(xiàn)主體計(jì)算部分并沒有什么區(qū)別,大同小異,最后被逼無奈,把char[]轉(zhuǎn)為string 結(jié)果段錯(cuò)誤消失了, 我不是很理解QAQ

代碼實(shí)現(xiàn)
#include#includeusing namespace std;
const int maxn = 2005;
int a[maxn], b[maxn];
int pro[maxn];
int main()
{
    string A, B;
    cin >>A >>B;
    //倒置并完成數(shù)組的類型轉(zhuǎn)換
    int alen = A.size();
    for (int i = 0; i< A.size(); i++)
    {
        if (A[alen - 1 - i] >= '0' && A[alen - 1 - i]<= '9')
            a[i] = A[alen - 1 - i] - 48;
        else
        {
            if (A[alen - 1 - i] >= 'A' && A[alen - 1 - i]<= 'Z')
                a[i] = A[alen - 1 - i] - 55;
        }
    }
    int blen = B.size();
    for (int i = 0; i< blen; i++)
    {
        if (B[blen - 1 - i] >= '0' && B[blen - 1 - i]<= '9')
            b[i] = B[blen - 1 - i] - 48;
        else
        {
            if (B[blen - 1 - i] >= 'A' && B[blen - 1 - i]<= 'Z')
                b[i] = B[blen - 1 - i] - 55;
        }
    }
    //完成乘積的運(yùn)算
    for (int i = 0; i< alen; i++)
        for (int j = 0; j< blen; j++)
            pro[i + j] += a[i] * b[j];
    //由于乘完以后我們不知道pro有多長 所以從最后一個(gè)pro檢索,記錄pro的長度
    int len = alen + blen;
    //記錄pro的長度后開始逐個(gè)逐個(gè)判斷是否有進(jìn)位
    for (int i = 0; i< len; i++)
    {
        pro[i + 1] += pro[i] / 16;
        pro[i] %= 16;
    }
    //重新計(jì)算len
    len = alen + blen;
    for (; !pro[len];) len--;
    for (int i = len; i >= 0; i--)
    {
        if (pro[i] >= 0 && pro[i]<= 9) cout<< pro[i];
        else cout<< char(pro[i] + 55);
    }
    return 0;
}
山頭狙擊戰(zhàn) 題目

在這里插入圖片描述

實(shí)現(xiàn)

周賽過程中發(fā)現(xiàn)突破不了隨時(shí)間遞增距離遞減的模擬,后放棄了這道題,在閱讀了一些題解以后,發(fā)現(xiàn)并不需要對(duì)全部敵人統(tǒng)一向前,具體的實(shí)現(xiàn)辦法放在代碼塊里寫一下思路awa

代碼塊
#include#include
using namespace std;
const int maxn = 1e5 + 5;
int army[maxn];
long long n, m;
bool check(int time)
{
	long long timesum = 0;
	//如果敵人的距離比射程遠(yuǎn)(注意是第一個(gè)敵人,其他敵人要換彈)
	if (army[1] >m)
	{
	 //那么射殺時(shí)間就是敵人的距離減去射程(而且一定是要射殺這個(gè)敵人)
	 //因?yàn)榕胚^序啦 按順序出現(xiàn)的敵人就是最近的敵人啦
		timesum += army[1] - m;
	}
	//面對(duì)其他敵人的時(shí)候
	for (int i = 2; i<= n; i++)
	{
	  //神槍手換彈!
		timesum += time;
		if (army[i]< timesum)return false;
		else
		{
		  //記錄下一個(gè)敵人的距離是army[i]-timesum
			if (army[i]- timesum >m)
			{
				timesum = army[i] - m;
			}
		}
	}
	return true;
}
int main()
{
	cin >>n >>m;
	for (int i = 1; i<= n; i++)
		cin >>army[i];
	sort(army + 1, army + n + 1);
	int l = 0, r = 1e7;
	//簡單的二分啦
	while (l<= r)
	{
		int mid = (l + r) / 2;
		if (check(mid))
		{
			l = mid + 1;
		}
		else
		{
			r = mid - 1;
		}
	}
	printf("%d", l - 1);
	return 0;
}
Reversing linked list反轉(zhuǎn)鏈表 題目

在這里插入圖片描述

實(shí)現(xiàn)

(題目是讀了翻譯看了題解)

使用數(shù)組去模擬,同時(shí)通過本節(jié)點(diǎn)的地址溝通了本節(jié)點(diǎn)的key值和下一個(gè)節(jié)點(diǎn)


代碼塊
#includeusing namespace std;
const int maxn = 1e5 + 5;
int key[maxn], nxt[maxn];
int ans[maxn];
int first, n, k;
int main()
{
	cin >>first >>n >>k;
	for (int i = 0; i< n; i++)
	{
		int add, keynum, nextp;
		cin >>add >>keynum >>nextp;
		key[add] = keynum;
		nxt[add] = nextp;
	}
	//利用這種數(shù)組存地址的方式,以這種方式遞推直到找到終點(diǎn)地址-1
	//全部壓入一個(gè)ans數(shù)組中,為使用reserve()埋伏筆
	int index = 0;
	for (int i = first; i != -1; i = nxt[i])
	{
		ans[index++] = i;
	}
	//保證在k段倒置,在超出k的段不改變
	for (int i = 0; i + k<= index; i+=k)
	{
		reverse(ans + i, ans + i + k);
	}
	for (int i = 0; i< index; i++)
	{
		if (i >= index - 1)printf("%05d %d -1\n", ans[i], key[ans[i]]);
		else printf("%05d %d %05d\n", ans[i], key[ans[i]], ans[i + 1]);
	}
	return 0;
}
一元三次方程 題目

在這里插入圖片描述
在這里插入圖片描述

實(shí)現(xiàn)

由于做過單峰函數(shù)的零點(diǎn)求解,所以只要設(shè)置一個(gè)合適的eps~用提示里的求根公式算出x1,x2,從p-x1,x1-x2,x2-q三段區(qū)間中各自有一個(gè)零點(diǎn),然后利用零點(diǎn)存在定理巴拉巴拉巴拉巴拉,OK!到此全部思路完全通透!題目!AC!—然并卵,題目不通過,在賽后修改時(shí),得知第二個(gè)測(cè)試點(diǎn)不過,閱讀他人代碼后

OK??!焯,原來x1和x2的大小并不是能由加減德爾塔決定的嗎!

代碼塊
#include#includeusing namespace std;
double a, b, c, d, p, q;
int t; double ans;
double fx(double x)
{
	return a * x * x * x + b * x * x + c * x + d;
}
void print(double l, double r)
{
	
	int flag = 1;
	while (fabs(l - r) >= 1e-6)
	{
		double mid = (l + r) / 2;
		double fx1 = fx(l);
		double fx2 = fx(mid);
		if (fx1 * fx2< 0)
		{
			r = mid;
			ans = r;
		}
		else if (fx1 * fx2 >0)
		{
			l = mid;
			ans = l;
		}
		else if (fx1 == 0)
		{
			printf("%lf ", l);
			flag = 0;
			break;
		}
		else if (fx2 == 0)
		{
			printf("%lf ", l);
			flag = 0;
			break;
		}
	}
	if (flag)printf("%lf ", ans);
}
int main()
{
	cin >>t;
	while (t--)
	{
		cin >>a >>b >>c >>d >>p >>q;
		double x2 = (sqrt(4 * b * b - 12 * a * c) - 2 * b) / (6 * a);
		double x1 = -(sqrt(4 * b * b - 12 * a * c) + 2 * b) / (6 * a);
		if (x1 >x2)swap(x1, x2);
		print(p,x1);
		print(x1,x2 );
		print(x2,q);
	}
	return 0;
}

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購,新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧

文章名稱:第一次雙周賽-創(chuàng)新互聯(lián)
網(wǎng)站路徑:http://muchs.cn/article0/coicoo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制開發(fā)、靜態(tài)網(wǎng)站、網(wǎng)站內(nèi)鏈、Google、手機(jī)網(wǎng)站建設(shè)、服務(wù)器托管

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

小程序開發(fā)