ホームページ ウェブフロントエンド htmlチュートリアル Codeforces ラウンド #271 (ディビジョン 2) ソリューション Report_html/css_WEB-ITnose

Codeforces ラウンド #271 (ディビジョン 2) ソリューション Report_html/css_WEB-ITnose

Jun 24, 2016 am 11:56 AM
round 報告 問題解決

質問アドレス: http://codeforces.com/contest/474

質問 A: キーボード

水の模擬質問。

コードは次のとおりです:

#include <iostream>#include <cstdio>#include <string>#include <cstring>#include <stdlib.h>#include <math.h>#include <ctype.h>#include <queue>#include <map>#include <set>#include <algorithm>using namespace std;#define LL __int64char s[]={"qwertyuiopasdfghjkl;zxcvbnm,./"};int main(){    int i, x, j, len;    char c, s1[200];    scanf("%c",&c);    if(c=='L')        x=1;    else        x=-1;        scanf("%s",s1);    len=strlen(s1);    for(i=0;i<len;i++)    {        for(j=0;;j++)        {            if(s[j]==s1[i])            {                printf("%c", s[j+x]);                break;            }        }    }    return 0;}
ログイン後にコピー

質問B: ワーム

水の質問。 。

コードは次のとおりです:

#include <iostream>#include <cstdio>#include <string>#include <cstring>#include <stdlib.h>#include <math.h>#include <ctype.h>#include <queue>#include <map>#include <set>#include <algorithm>using namespace std;#define LL __int64int dp[1100000];int main(){    int n, m, i, j, sum=0, x;    scanf("%d",&n);    for(i=0;i<n;i++)    {        scanf("%d",&x);        for(j=sum;j<sum+x;j++)        {            dp[j]=i;        }        sum+=x;    }    scanf("%d",&m);    while(m--)    {        scanf("%d",&x);        printf("%d\n",dp[x-1]+1);    }    return 0;}
ログイン後にコピー

質問C: キャプテン・マーモット

合計 4*4*4*4 の状況を暴力的に列挙し、それぞれの場合で正方形であるかどうかを判断します。実はずっと長方形だと思ってました。 。

判定方法:4つの辺と2つの対角線をそれぞれ計算します。次に、4 つの小さなものは辺、2 つの大きなものは対角であることをソートし、辺が等しいかどうか、対角がすべて等しいかどうか、および対角が辺の sqrt(2) 倍であるかどうかを判断します (最良のもの)ここでは正方形を使用して 2 回かどうかを判断します)。次に、移動が最も少ない出力を見つけます。

コードは次のとおりです:

#include <iostream>#include <cstdio>#include <string>#include <cstring>#include <stdlib.h>#include <math.h>#include <ctype.h>#include <queue>#include <map>#include <set>#include <algorithm>using namespace std;#define LL __int64const int mod=1e9+7;struct node{    LL x, y;}t1[5], t2[5], fei[5];node solve(node x, node y, int z){    node t;    t=x;    int i;    for(i=0;i<z;i++)    {        x.x=y.y-t.y+y.x;        x.y=t.x-y.x+y.y;        t=x;    }    return t;}LL dist(node a, node b){    LL x=a.x-b.x;    LL y=a.y-b.y;    return x*x+y*y;}bool judge(){    int i, j;    LL d[6];    d[0]=dist(fei[0],fei[1]);    d[1]=dist(fei[1],fei[2]);    d[2]=dist(fei[2],fei[3]);    d[3]=dist(fei[3],fei[0]);    d[4]=dist(fei[0],fei[2]);    d[5]=dist(fei[1],fei[3]);    sort(d,d+6);    if(d[0]==0) return 0;    if(d[0]==d[1]&&d[1]==d[2]&&d[2]==d[3]&&d[4]==2*d[0]&&d[4]==d[5])        return 1;    return 0;}int main(){    int t, i, j, k, h, min1;    scanf("%d",&t);    while(t--)    {        min1=20;        for(i=0;i<4;i++)        {            scanf("%I64d%I64d%I64d%I64d",&t1[i].x,&t1[i].y,&t2[i].x,&t2[i].y);        }        for(i=0;i<4;i++)        {            fei[0]=solve(t1[0],t2[0],i);            for(j=0;j<4;j++)            {                fei[1]=solve(t1[1],t2[1],j);                for(k=0;k<4;k++)                {                    fei[2]=solve(t1[2],t2[2],k);                    for(h=0;h<4;h++)                    {                        fei[3]=solve(t1[3],t2[3],h);                        if(judge())                            {                                min1=min(min1,i+j+k+h);                            }                    }                }            }        }        if(min1==20) puts("-1");        else            printf("%d\n",min1);    }    return 0;}
ログイン後にコピー

質問 D: 花

DP、まだ水の質問です。 。次のように考えることができます:

n 番目の状況は 2 つだけあり、n 番目の状況が R の場合、状況の数は dp[n-1] です。 n 番目が W の場合、W は連続して k 回しか取れないので、n-k+1 から n 番目まではすべて W でなければならず、このときの状況の数は dp[n-k] になります。したがって、状態遷移方程式は次のようになります:

dp[n]=dp[n-1]+dp[n-k]。

次に、配列を使用してプレフィックスの合計を保存します。

コードは次のとおりです:

#include <iostream>#include <cstdio>#include <string>#include <cstring>#include <stdlib.h>#include <math.h>#include <ctype.h>#include <queue>#include <map>#include <set>#include <algorithm>using namespace std;#define LL __int64const int mod=1e9+7;LL dp[110000], sum[110000];int main(){    int i, j, n, k, a, b;    LL x=0;    sum[0]=0;    dp[0]=0;    scanf("%d%d",&n,&k);    for(i=1;i<=k-1;i++)        dp[i]=1;    dp[k]=2;    for(i=k+1;i<=100000;i++)    {        dp[i]=dp[i-k]+dp[i-1];        dp[i]%=mod;    }    for(i=1;i<=100000;i++)    {        sum[i]=(sum[i-1]+dp[i])%mod;    }    while(n--)    {        scanf("%d%d",&a,&b);        printf("%I64d\n",(sum[b]+mod-sum[a-1])%mod);    }    return 0;}
ログイン後にコピー
でできることは限られています。 。悲しい。 。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

PHPでラウンドは何を意味しますか PHPでラウンドは何を意味しますか Mar 10, 2023 am 10:04 AM

PHP では、round は「丸め」を意味し、浮動小数点数を整数に変換する組み込み関数です。この関数は浮動小数点数を丸め、float 型の整数値を返すことができます。構文は「round(number, precision,mode)」です。 );"。

PHPのround()関数を使って割り算と丸めを行う方法 PHPのround()関数を使って割り算と丸めを行う方法 Mar 21, 2023 pm 04:32 PM

Round() 関数は、PHP 数値書式設定ライブラリの非常に便利な関数で、浮動小数点数を指定された小数点以下の桁数に丸めることができます。ただし、PHP の除算演算では小数が無限になったり、精度が低下したりする可能性があるため、除数の丸めも必要です。次に、PHPのround()関数を使って除算と丸めを行う方法を詳しく説明します。

MySQL で ROUND 関数を使用して小数点以下の桁をインターセプトする方法 MySQL で ROUND 関数を使用して小数点以下の桁をインターセプトする方法 Jul 13, 2023 pm 09:21 PM

MySQL で ROUND 関数を使用して小数点以下の桁数をインターセプトする方法 MySQL では、ROUND 関数を使用して小数点以下の桁数をインターセプトできます。 ROUND 関数は、数値を指定された小数点以下の桁数に丸めます。以下では、ROUND 関数の使用方法を詳しく紹介し、コード例を示します。構文: ROUND(X,D)X は四捨五入される数値を表し、D は保持される小数点以下の桁数を表します。 ROUND 関数を使用して小数点以下の桁数を取得する例: produc という名前のテーブルがあるとします。

この記事では、ChatGPT を使用してレポートをすばやく作成する方法を説明します。 この記事では、ChatGPT を使用してレポートをすばやく作成する方法を説明します。 May 14, 2023 pm 04:04 PM

この記事では、ChatGPT (最新の GPT-4 モデル バージョン) のトレーニングとレポート生成のプロセス全体を共有し、ChatGPT の使用に存在する一般的な問題と、ChatGPT を使用して学習と作業の効率を最大化する方法について説明します。以下は、AI 安全性レポートを生成するプロセス全体です。インフラストラクチャのトピックの選択 高品質のトピックの選択は、学術研究者がレポートの開始点を迅速に決定し、読者がレポートの主要テーマを理解できるようにガイドし、レポート全体の構造とロジックをより明確にするのに役立ちます。レポートの背景を紹介したり、ChatGPT にキーワードや概要を提供したりすることで、ChatGPT は研究者の参考となるトピックの選択を数秒で生成できます。質問するとき、ChatGPT に複数のトピックの選択肢を同時に生成するように依頼できます。

MySQL と Oracle: 分析とレポートのサポートの比較 MySQL と Oracle: 分析とレポートのサポートの比較 Jul 12, 2023 pm 07:37 PM

MySQL と Oracle: 分析およびレポート機能のサポートの比較 現代のデータドリブンの世界では、企業データが増大し続けるにつれて、データ分析およびレポート機能の需要も高まっています。 MySQL と Oracle は、最も人気のある 2 つのリレーショナル データベース管理システム (RDBMS) として、この点で高いサポート パフォーマンスを備えています。この記事では、データ分析およびレポート機能のサポートの観点からこれらを比較し、コード例を通じて違いを示します。まず、MySQL のデータ分析を見てみましょう

人工知能の「出現」の瞬間: データセンターはどのように問題を解決するのか? 人工知能の「出現」の瞬間: データセンターはどのように問題を解決するのか? Nov 23, 2023 pm 12:30 PM

何百もの業界指向の AI の大規模モデルが登場すると、大規模モデルをホストするデータセンターは静かに変化し始めます。大規模なモデルには大きなコンピューティング能力が必要ですが、データセンターは、さまざまな業界のインテリジェントなニーズを満たすデジタルトランスフォーメーションのコンピューティングパワー基盤として、多様なコンピューティング総合機能を提供する一方で、データセンターはエネルギー使用効率の向上を継続します。より優れたコンピューティング アーキテクチャとより低いエネルギー消費により、より大きなコンピューティング パワーが生成され、それ自体がグリーンと低炭素を実現するだけでなく、他の産業のインテリジェントな変革を促進し、社会全体の炭素削減を促進します。工業情報化省のデータによると、我が国で使用されているデータセンターラックの総数は、2022 年に標準ラック 590 万台を超え、サーバー数は約 2,000 万台となり、年間平均成長率はデータセンターのストレージ容量は 50% を超えるでしょう。同時に、全体を通して、

Java 開発: コード カバレッジのテストとレポートを行う方法 Java 開発: コード カバレッジのテストとレポートを行う方法 Sep 21, 2023 pm 12:42 PM

Java 開発: コード カバレッジ テストとレポートの実施方法 Java 開発では、コード カバレッジ テストは、テスト ケースがコードのさまざまな部分をカバーしているかどうかを判断し、コードのテスト品質を理解するのに役立つ重要なツールです。この記事では、コード カバレッジ テストを実施し、対応するレポートを生成する方法について説明し、いくつかの具体的なコード例を示します。コード カバレッジ テストでは、テスト ケースを実行し、実行情報を収集することによって、コードの各部分のカバレッジを測定します。 Java 開発で一般的に使用されるコード カバレッジ テスト ツール

Kuaishou の 2023 年年次報告書の読み方 Kuaishou の 2023 年年次報告書の読み方 Feb 23, 2024 pm 12:34 PM

Kuaishou は毎年、誰もが読める年次報告書を発行していますが、今年の年次報告書についてどう思いますか?ユーザーは、検索バーで年間の思い出を検索できます。この 2023 アニュアルレポートの閲覧方法の紹介では、その操作方法を説明します。以下に詳しく紹介します。ぜひご覧ください。 Kuaishou の使い方チュートリアル: Kuaishou コインを Kuaishou エクスプレス バージョンに交換できる場所はどこですか? 回答: 検索バーで年間の思い出を検索します 具体的な紹介: 1. まず上の検索バーをクリックし、年間の思い出を入力し、クリックして参加します。 2. 入力後、下の「今すぐ開く」をクリックします。 3. 下にスワイプしてページをめくります。 4. 最後に、ワンクリックで作品を公開して共有する機能を持たせることができます。

See all articles