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
題目實現(xiàn)QAQ,在寫高精度乘法的時候很認真在寫了,所以周賽時大概沒在高精度乘法上出問題(自己記憶了自己的模板),不過在進制轉(zhuǎn)化過程可能多考慮了幾步,但是無論如何提交都是段錯誤,我并不理解??!甚至在考試下修改的時候也依然是錯誤的,emm,后來在DDL查看了一下其他人的題解后發(fā)現(xiàn)主體計算部分并沒有什么區(qū)別,大同小異,最后被逼無奈,把char[]轉(zhuǎn)為string 結(jié)果段錯誤消失了, 我不是很理解QAQ
代碼實現(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;
}
}
//完成乘積的運算
for (int i = 0; i< alen; i++)
for (int j = 0; j< blen; j++)
pro[i + j] += a[i] * b[j];
//由于乘完以后我們不知道pro有多長 所以從最后一個pro檢索,記錄pro的長度
int len = alen + blen;
//記錄pro的長度后開始逐個逐個判斷是否有進位
for (int i = 0; i< len; i++)
{
pro[i + 1] += pro[i] / 16;
pro[i] %= 16;
}
//重新計算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)
題目實現(xiàn)周賽過程中發(fā)現(xiàn)突破不了隨時間遞增距離遞減的模擬,后放棄了這道題,在閱讀了一些題解以后,發(fā)現(xiàn)并不需要對全部敵人統(tǒng)一向前,具體的實現(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;
//如果敵人的距離比射程遠(注意是第一個敵人,其他敵人要換彈)
if (army[1] >m)
{
//那么射殺時間就是敵人的距離減去射程(而且一定是要射殺這個敵人)
//因為排過序啦 按順序出現(xiàn)的敵人就是最近的敵人啦
timesum += army[1] - m;
}
//面對其他敵人的時候
for (int i = 2; i<= n; i++)
{
//神槍手換彈!
timesum += time;
if (army[i]< timesum)return false;
else
{
//記錄下一個敵人的距離是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)鏈表
題目實現(xiàn)(題目是讀了翻譯看了題解)
使用數(shù)組去模擬,同時通過本節(jié)點的地址溝通了本節(jié)點的key值和下一個節(jié)點
#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ù)組存地址的方式,以這種方式遞推直到找到終點地址-1
//全部壓入一個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ù)的零點求解,所以只要設(shè)置一個合適的eps~用提示里的求根公式算出x1,x2,從p-x1,x1-x2,x2-q三段區(qū)間中各自有一個零點,然后利用零點存在定理巴拉巴拉巴拉巴拉,OK!到此全部思路完全通透!題目!AC!—然并卵,題目不通過,在賽后修改時,得知第二個測試點不過,閱讀他人代碼后
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海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧
文章名稱:第一次雙周賽-創(chuàng)新互聯(lián)
網(wǎng)站路徑:http://jinyejixie.com/article0/coicoo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制開發(fā)、靜態(tài)網(wǎng)站、網(wǎng)站內(nèi)鏈、Google、手機網(wǎng)站建設(shè)、服務(wù)器托管
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容