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

CodeTON Round 5 (Div. 1 + Div. 2, Rated, Prizes!) A-D

這篇具有很好參考價(jià)值的文章主要介紹了CodeTON Round 5 (Div. 1 + Div. 2, Rated, Prizes!) A-D。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

1842A - Tenzing and Tsondu

題意

丁真和珍珠寶可夢(mèng)對(duì)決, 每個(gè)寶可夢(mèng)都有x戰(zhàn)力, 假設(shè)有兩個(gè)寶可夢(mèng), 其戰(zhàn)力分別為a和b(a>b), 戰(zhàn)力為a的寶可夢(mèng)獲勝后戰(zhàn)力-b, 而戰(zhàn)敗的寶可夢(mèng)會(huì)消失
最后還有寶可夢(mèng)的人獲勝
問(wèn)你丁真和珍珠誰(shuí)贏了

題解

顯而易見(jiàn), 贏下來(lái)的寶可夢(mèng)可以繼續(xù)打, 輸了的就會(huì)消失, 所以是比戰(zhàn)力值總和

代碼

void solve()
{
    cin>>n>>m;
    vector<ll>a(n+1);
    ll u,v;
    u=v=0;
    rep(i,1,n) cin>>a[i],u+=a[i];
    vector<ll>b(m+1);
    rep(i,1,m) cin>>b[i],v+=b[i];
    if(u==v) cout<<"Draw"<<endl;
    else if(u>v)cout<<"Tsondu"<<endl;
    else cout<<"Tenzing"<<endl;
    return;
}

1842B - Tenzing and Books

題意

丁真收到了三堆書(shū), 每堆書(shū)有 n n n本, 每本書(shū)有固定的知識(shí)值 a [ i ] a[i] a[i]
每讀一本書(shū)就會(huì)使得丁真的知識(shí)值與這本書(shū)的知識(shí)值進(jìn)行或運(yùn)算
a n s ∣ = a [ i ] ans|=a[i] ans=a[i]
丁真會(huì)從書(shū)堆的開(kāi)頭第一本開(kāi)始讀
每當(dāng)丁真不想讀下去時(shí), 他會(huì)直接放棄一整堆書(shū)
丁真想讓他的知識(shí)值達(dá)到ans, 問(wèn)你這可能嗎

題解

因?yàn)槭腔蜻\(yùn)算, 思路直接來(lái)到了位運(yùn)算
首先, 假設(shè)ans的二進(jìn)制是10011
那么想要讓丁真達(dá)到ans這個(gè)值, 我們需要注意一些點(diǎn)

因?yàn)槭腔蜻\(yùn)算, 書(shū)的知識(shí)值中二進(jìn)制為0是不會(huì)對(duì)答案造成影響的
若同一個(gè)二進(jìn)制位中, 書(shū)的知識(shí)值為1而答案為0, 那么就對(duì)答案造成了偏差
那么以貪心的思想, 只要不會(huì)對(duì)答案造成影響的(即 b o o k > > i & 1 book>>i\&1 book>>i&1==1&&ans>>i&1!=0), 丁真都可以讀

那么答案顯而易見(jiàn), 對(duì)所有能讀的書(shū)都給讀了, 遇到不能讀的書(shū)就退出書(shū)堆, 最后對(duì)比答案就可以了

代碼

void solve()
{
    cin>>n>>m;
    vector<ll> a(n+1);
    ans=0;  
    rep(i,1,n) cin>>a[i];
    rep(i,1,n)//這段for重復(fù)三遍
    {
        ll mk=0;
        for(ll j=0;j<=32;j++)
        {
            cnt=(m>>j)&1;
            ant=(a[i]>>j)&1;
            if((ant&&cnt==0)) 
            {
                mk=1;
                break;
            }
        }
        if(mk) break;
        ans|=a[i];
    }

    rep(i,1,n) cin>>a[i];
    rep(i,1,n)
    {
        ll mk=0;
        for(ll j=0;j<=32;j++)
        {
            cnt=(m>>j)&1;
            ant=(a[i]>>j)&1;
            if(ant&&cnt==0) 
            {
                mk=1;
                break;
            }
        }
        if(mk) break;
        ans|=a[i];
    }

    rep(i,1,n) cin>>a[i];
    rep(i,1,n)
    {
        ll mk=0;
        for(ll j=0;j<=32;j++)
        {
            cnt=(m>>j)&1;
            ant=(a[i]>>j)&1;
            if(ant&&cnt==0) 
            {
                mk=1;
                break;
            }
        }
        if(mk) break;
        ans|=a[i];
    }
    
    if(ans==m) yes
    else no

    return;
}

解法2

CodeTON Round 5 (Div. 1 + Div. 2, Rated, Prizes!) A-D,最短路,dp,貪心,算法,開(kāi)發(fā)語(yǔ)言,c++
源代碼出自
用&的方式省去了位運(yùn)算枚舉
很妙

1842C - Tenzing and Balls

題意

n個(gè)球排成一列, 每個(gè)球都有一個(gè)特定的顏色值
丁真可以選擇兩個(gè)顏色值一樣的球, 刪除這這兩個(gè)球之間的所有球(包括這兩個(gè)球)這個(gè)操作可以進(jìn)行無(wú)限次
問(wèn)你最多能刪多少個(gè)球

題解

這題一開(kāi)始以為是雙指針假了, 其實(shí)是dp
使用兩個(gè)數(shù)組進(jìn)行動(dòng)態(tài)規(guī)劃
d數(shù)組用于存儲(chǔ)這個(gè)元素的最優(yōu)解, 而f數(shù)組用于存儲(chǔ)當(dāng)前下標(biāo)的最優(yōu)解(即答案)
則動(dòng)態(tài)轉(zhuǎn)移方程(設(shè)當(dāng)前元素為x)

f[i]=min(f[i-1]+1,d[x]);//選擇該元素的最優(yōu)解(若沒(méi)出現(xiàn)過(guò)則為INF), 或者不選(答案+1)
d[x]=min(f[i-1],d[x]);//該元素的最優(yōu)解=當(dāng)前局部最優(yōu)解和元素最優(yōu)解取min

最后答案為n-f[n]

代碼

void solve()
{
    cin>>n;
    vector<ll>a(n+1),f(a),d(n+1,INF);
    rep(i,1,n)
        cin>>a[i];

    rep(i,1,n)
    {
        ll x=a[i];
        f[i]=min(f[i-1]+1,d[x]);
        d[x]=min(f[i-1],d[x]);
    }
    cout<<n-f[n]<<endl;
    return;
}

1842D - Tenzing and His Animal Friends

題意

這題題面很抽象, 我看了至少半小時(shí)才看懂(也可能是因?yàn)橛⒄Z(yǔ)太菜了, 嗯造機(jī)翻)
最后看了公告才看懂的

丁真和他的n個(gè)動(dòng)物朋友玩耍, 丁真非常喜歡他的1號(hào)朋友, 所以每次都要和1號(hào)朋友玩, 丁真不喜歡他的n號(hào)朋友, 所以丁真不和n號(hào)朋友玩
現(xiàn)在給出m個(gè)限制, 每個(gè)限制有u v w三個(gè)參數(shù), 代表u號(hào)朋友和v號(hào)朋友不在一起的時(shí)間不超過(guò)w
(u和v同時(shí)都在和同時(shí)不在的時(shí)間不會(huì)被此條限制所影響)
丁真想盡可能用更多的時(shí)間和動(dòng)物朋友們玩耍
請(qǐng)輸出丁真最多能和動(dòng)物朋友玩耍的時(shí)間和玩耍的次數(shù)
用二進(jìn)制狀態(tài)表示丁真和哪些動(dòng)物朋友們玩耍, 并在同一行那一次輸出玩耍了多久

題解

首先1和n一定要在一個(gè)連通塊中, 不一定需要1和n在一條邊上但一定要在一個(gè)連通塊中, 若1和n不在一個(gè)連通塊中, 我們就可以一直構(gòu)造11111…11110這樣的玩法持續(xù)無(wú)限次, 因?yàn)?和n并不相連, 所以不存在只允許出1而不出現(xiàn)n的次數(shù)限制 (注意題目條件n不能出現(xiàn), 1必須出現(xiàn)) , 因此可以一直構(gòu)造這樣的玩法
相應(yīng)的, 從1到n的最短路, 也就是此題中丁真最多能和動(dòng)物朋友有玩的時(shí)間了
(這題的難度就在這里了, 當(dāng)時(shí)想破了腦袋也沒(méi)想出這題是個(gè)最短路)
然后將數(shù)據(jù)分為兩類(lèi), 一類(lèi)是可以和1一起玩的, 另一類(lèi)是不能和1一起玩的
按照貪心的思想, 每次都將能和1一起有玩的所有動(dòng)物朋友都加進(jìn)去, 而游玩時(shí)間就是其中能和1玩的動(dòng)物朋友中, 能玩時(shí)間的最小值 (也就是他到n的最短路/或者1到n的最短路 這里取最小值 再減去上一個(gè)次游玩的時(shí)間, 原因是有上一次游玩時(shí)間和這一次游玩時(shí)間有交集部分 而交集部分正好是上一次游玩的時(shí)間)
按照這樣下去, 每次游玩都必定淘汰至少一個(gè)

代碼

void solve()
{
    cin>>n>>m;
    rep(i,1,n) 
        rep(j,1,n)
        {
            if(i!=j) cnt=llINF;
            else cnt=0;
            a[i][j]=cnt;
        }
        
    rep(i,1,m)
    {
        ll u,v,w;
        cin>>u>>v>>w;
        a[u][v]=a[v][u]=w;
    }

    rep(k,1,n)
        rep(i,1,n)
            rep(j,1,n)
            a[i][j]=min(a[i][j],a[i][k]+a[k][j]);
    if(a[1][n]==llINF)
    {
        cout<<"inf"<<endl;
        return;
    }

    vector<ll>d(n+1),dist;

    cnt=a[1][n];
    rep(i,1,n) 
    {
        d[i]=min(cnt,a[i][n]);
        dist.push_back(d[i]);
    }

    sort(dist.begin(),dist.end());
    dist.erase(unique(dist.begin(),dist.end()),dist.end());
    cout<<cnt<<' '<<dist.size()-1<<endl;
    cnt=0;
    repr(i,0,dist.size())
    {
        if(!dist[i]) continue;
        rep(j,1,n) cout<<(d[j]>=dist[i]);
        cout<<' '<<dist[i]-cnt<<endl;
        cnt=dist[i];
    }

    
    return;
}

這里用的Floyd求最短路, 當(dāng)然你用dijkstra也是可以的文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-527346.html

到了這里,關(guān)于CodeTON Round 5 (Div. 1 + Div. 2, Rated, Prizes!) A-D的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(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)文章

  • Educational Codeforces Round 161 (Rated for Div. 2)

    Educational Codeforces Round 161 (Rated for Div. 2)

    Educational Codeforces Round 161 (Rated for Div. 2) 題意:開(kāi)始沒(méi)看懂。。。給出長(zhǎng)度均為n的三個(gè)字符串a(chǎn)bc,字符串s與模板t匹配的條件為:當(dāng)模板位置字符為小寫(xiě)時(shí), s i s_i s i ? 與 t i t_i t i ? 必須相同,大寫(xiě)時(shí)二者必須不同。這里注意,字符匹配過(guò)程是不區(qū)分大小寫(xiě)的,’C‘與’

    2024年01月19日
    瀏覽(41)
  • Educational Codeforces Round 148 (Rated for Div. 2) 題解

    總結(jié):5.21下午VP一場(chǎng),死在了A題,給我wa崩潰了,浪費(fèi)了差不多一個(gè)小時(shí),BC還挺順暢,雖然C題是在結(jié)束后不久交上去的。。。。 思路:其實(shí)思路很簡(jiǎn)單, “ The string s a palindrome ”, 題目已經(jīng)說(shuō)了所給的為回文字符串,所以直接判斷一半 有幾種字符 即可(開(kāi)始的時(shí)候計(jì)算整

    2024年02月06日
    瀏覽(18)
  • Educational Codeforces Round 62 (Rated for Div. 2) C. Playlist

    Educational Codeforces Round 62 (Rated for Div. 2) C. Playlist

    ?一開(kāi)始肯定要排個(gè)序,b相同時(shí)t大的在前邊,不同時(shí)b大的在前面。 然后想最多只能選k個(gè)的限制,可以這樣想,每次用到的b只能用已選到的最小的值,那可以把每個(gè)b都枚舉一遍,然后每一次選時(shí)長(zhǎng)最長(zhǎng)的,且b大于等于當(dāng)前的b的那k個(gè)不就好了嗎,時(shí)間復(fù)雜度也才O(n),然

    2024年02月12日
    瀏覽(18)
  • Educational Codeforces Round 154 (Rated for Div. 2)(A—C)

    從1到9,每個(gè)數(shù)后面都可以加一個(gè)數(shù)構(gòu)成一個(gè)含有兩個(gè)數(shù)的質(zhì)數(shù),只需要從s[1]~s[9]中找到一個(gè)數(shù)與s[0]構(gòu)成質(zhì)數(shù)即可 觀察樣例即可發(fā)現(xiàn)兩個(gè)字符串只要在相同位置都有 01 存在就能成功實(shí)現(xiàn)轉(zhuǎn)換后兩個(gè)字符串相等 可以先假設(shè)字符串是可以成立的,那么接下來(lái)就判斷它什么時(shí)間是

    2024年02月10日
    瀏覽(22)
  • Educational Codeforces Round 154 (Rated for Div. 2)(A—D)

    從1到9,每個(gè)數(shù)后面都可以加一個(gè)數(shù)構(gòu)成一個(gè)含有兩個(gè)數(shù)的質(zhì)數(shù),只需要從s[1]~s[9]中找到一個(gè)數(shù)與s[0]構(gòu)成質(zhì)數(shù)即可 觀察樣例即可發(fā)現(xiàn)兩個(gè)字符串只要在相同位置都有 01 存在就能成功實(shí)現(xiàn)轉(zhuǎn)換后兩個(gè)字符串相等 可以先假設(shè)字符串是可以成立的,那么接下來(lái)就判斷它什么時(shí)間是

    2024年02月10日
    瀏覽(35)
  • Educational Codeforces Round 135 (Rated for Div. 2)C. Digital Logarithm(思維)

    Educational Codeforces Round 135 (Rated for Div. 2)C. Digital Logarithm(思維)

    C. Digital Logarithm 給兩個(gè)長(zhǎng)度位 n n n 的數(shù)組 a a a 、 b b b ,一個(gè)操作 f f f 定義操作 f f f 為, a [ i ] = f ( a [ i ] ) = a [ i ] a[i]=f(a[i])=a[i] a [ i ] = f ( a [ i ]) = a [ i ] 的位數(shù) 求最少多少次操作可以使 a 、 b a、b a 、 b 兩個(gè)數(shù)組變得完全相同 性質(zhì): 對(duì)于任何數(shù),經(jīng)過(guò)兩次操作我們一定可以

    2024年02月20日
    瀏覽(18)
  • 【每日一題】—— B. Ternary String (Educational Codeforces Round 87 (Rated for Div. 2))

    【每日一題】—— B. Ternary String (Educational Codeforces Round 87 (Rated for Div. 2))

    ??博客主頁(yè): PH_modest的博客主頁(yè) ??當(dāng)前專(zhuān)欄: 每日一題 ??其他專(zhuān)欄: ?? 每日反芻 ?? C++跬步積累 ?? C語(yǔ)言跬步積累 ??座右銘: 廣積糧,緩稱(chēng)王! 題目大意:給你一串由1、2、3組成的數(shù)組,讓你求一個(gè)最短的子串,要求這個(gè)子串包含1、2、3 題目鏈接:B. Ternary String

    2024年02月16日
    瀏覽(18)
  • Educational Codeforces Round 157 (Rated for Div. 2) F. Fancy Arrays(容斥+組合數(shù)學(xué))

    題目 稱(chēng)一個(gè)長(zhǎng)為n的數(shù)列a是fancy的,當(dāng)且僅當(dāng): 1. 數(shù)組內(nèi)至少有一個(gè)元素在[x,x+k-1]之間 2. 相鄰項(xiàng)的差的絕對(duì)值不超過(guò)k,即 t(t=50)組樣例,每次給定n(1=n=1e9),x(1=x=40), 求fancy的數(shù)組的數(shù)量,答案對(duì)1e9+7取模 思路來(lái)源 靈茶山艾府群 官方題解 題解 看到 至少 的字眼,首先想到容斥,

    2024年02月05日
    瀏覽(20)
  • Educational Codeforces Round 161 (Rated for Div. 2) E. Increasing Subsequences 動(dòng)態(tài)規(guī)劃逼近,二進(jìn)制拆分補(bǔ)充,注意嚴(yán)格遞增

    Problem - E - Codeforces 目錄 推薦視頻: 題意: 細(xì)節(jié)(我踩得沒(méi)什么價(jià)值的坑): 思路: 對(duì)樣例3 (X = 13)做解釋?zhuān)?—————— 總思路: —————— 動(dòng)態(tài)規(guī)劃逼近: —————— 二進(jìn)制拆分補(bǔ)充剩余: 核心代碼:? E_嗶哩嗶哩_bilibili 其實(shí)有一些細(xì)節(jié)說(shuō)的不是特別清楚好

    2024年02月22日
    瀏覽(22)
  • Educational Codeforces Round 161 (Rated for Div. 2) E題 動(dòng)態(tài)規(guī)劃逼近,二進(jìn)制拆分補(bǔ)充,注意嚴(yán)格遞增strictly increasing

    Problem - E - Codeforces 目錄 推薦視頻: 題意: 細(xì)節(jié)(我踩得沒(méi)什么價(jià)值的坑): 思路: 對(duì)樣例3 (X = 13)做解釋?zhuān)?—————— 總思路: —————— 動(dòng)態(tài)規(guī)劃逼近: —————— 二進(jìn)制拆分補(bǔ)充剩余: 核心代碼:? E_嗶哩嗶哩_bilibili 其實(shí)有一些細(xì)節(jié)說(shuō)的不是特別清楚好

    2024年01月24日
    瀏覽(17)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包