目錄
A. Pasha and Pixels
Code:
B. Anton and currency you all know
Another Code:
C. Anya and Ghosts
首頁 資料庫 mysql教程 第二十七次codeforces竞技结束 #288 Div 2

第二十七次codeforces竞技结束 #288 Div 2

Jun 07, 2016 pm 03:07 PM
div 結束

Problems # Name A Pasha and Pixels standard input/output 2 s, 256 MB x3234 B Anton and currency you all know standard input/output 0.5 s, 256 MB x2848 C Anya and Ghosts standard input/output 2 s, 256 MB x1671 这次出了前三题,原为第三位的Av

Problems

第二十七次codeforces竞技结束 #288 Div 2

 

 

# Name    
A

Pasha and Pixels

standard input/output

2 s, 256 MB
第二十七次codeforces竞技结束 #288 Div 2 第二十七次codeforces竞技结束 #288 Div 2 第二十七次codeforces竞技结束 #288 Div 2 x3234
B

Anton and currency you all know

standard input/output

0.5 s, 256 MB
第二十七次codeforces竞技结束 #288 Div 2 第二十七次codeforces竞技结束 #288 Div 2 第二十七次codeforces竞技结束 #288 Div 2 x2848
C

Anya and Ghosts

standard input/output

2 s, 256 MB
第二十七次codeforces竞技结束 #288 Div 2 第二十七次codeforces竞技结束 #288 Div 2 第二十七次codeforces竞技结束 #288 Div 2 x1671

这次出了前三题,原为第三位的Avator加了100来分变成第二了,这下终于三个ID都1650+了,可喜可贺,希望能多撑几天吧……


A. Pasha and Pixels

time limit per test

2 seconds

memory limit per test

256 megabytes

input

standard input

output

standard output

Pasha loves his phone and also putting his hair up... But the hair is now irrelevant.

Pasha has installed a new game to his phone. The goal of the game is following. There is a rectangular field consisting of n row with mpixels in each row. Initially, all the pixels are colored white. In one move, Pasha can choose any pixel and color it black. In particular, he can choose the pixel that is already black, then after the boy's move the pixel does not change, that is, it remains black. Pasha loses the game when a 2?×?2 square consisting of black pixels is formed.

Pasha has made a plan of k moves, according to which he will paint pixels. Each turn in his plan is represented as a pair of numbers iand j, denoting respectively the row and the column of the pixel to be colored on the current move.

Determine whether Pasha loses if he acts in accordance with his plan, and if he does, on what move the 2?×?2 square consisting of black pixels is formed.

Input

The first line of the input contains three integers n,?m,?k (1?≤?n,?m?≤?10001?≤?k?≤?105) — the number of rows, the number of columns and the number of moves that Pasha is going to perform.

The next k lines contain Pasha's moves in the order he makes them. Each line contains two integers i and j (1?≤?i?≤?n1?≤?j?≤?m), representing the row number and column number of the pixel that was painted during a move.

Output

If Pasha loses, print the number of the move when the 2?×?2 square consisting of black pixels is formed.

If Pasha doesn't lose, that is, no 2?×?2 square consisting of black pixels is formed during the given k moves, print 0.

Sample test(s)

input

2 2 4
1 1
1 2
2 1
2 2
登入後複製

output

4
登入後複製

input

2 3 6
2 3
2 2
1 3
2 2
1 2
1 1
登入後複製

output

5
登入後複製

input

5 3 7
2 3
1 2
1 1
4 1
3 1
5 3
3 2
登入後複製

output

0
登入後複製



给你一个n*m的棋盘,每次你走到的格子都会被涂黑,接下来有k步,每一步都告诉你我这步走的是哪一个格子(Row/Col坐标),要求输出在第几步时第一次出现了2X2的黑色正方形,如果走完了都没出现,则输出0。

看了看数据范围,似乎……模拟完全无压呢

我们就真的给一个棋盘,每走一步我们就把这个格子 mp[a][b]=1 标记一下,然后找左上右上左下右下,这四个2X2的正方形是不是全黑,是的话输出然后return,不是的话就继续咯~

Code:

#include <cmath> 
#include <cctype>
#include <cstdio>
#include <string>
#include <cstdlib>
#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std;

#define Max(a,b) ((a)>(b)?(a):(b))
#define Min(a,b) ((a) b;
}

int mp[1002][1002]={0};

bool judge(int r,int c)
{
	if(mp[r-1][c]==1)
	{
		if(mp[r][c-1]==1)
		{
			if(mp[r-1][c-1]==1)return true;
		}
		if(mp[r][c+1]==1)
		{
			if(mp[r-1][c+1]==1)return true;
		}
	}
	if(mp[r+1][c]==1)
	{
		if(mp[r][c-1]==1)
		{
			if(mp[r+1][c-1]==1)return true;
		}
		if(mp[r][c+1]==1)
		{
			if(mp[r+1][c+1]==1)return true;
		}
	}
	return false;
}

int main()
{
	int n,m,k;	cin>>n>>m>>k;
	for(int i=1;i<br>
<br>


<p>
</p>
<p>
</p>
<p>
</p>
<p>
</p>
<p>
</p>
<p>
</p>
<h2 id="B-Anton-and-currency-you-all-know">B. Anton and currency you all know</h2>
<p>
</p>
<p>
time limit per test</p>
0.5 seconds
<p>
</p>
<p>
memory limit per test</p>
256 megabytes
<p>
</p>
<p>
input</p>
standard input
<p>
</p>
<p>
output</p>
standard output

<p>
</p>
<p>
Berland, 2016. The exchange rate of <span>currency you all know</span> against the burle has increased so much that to simplify the calculations, its fractional part was neglected and the exchange rate is
 now assumed to be an integer.</p>
<p>
Reliable sources have informed the financier Anton of some information about the exchange rate of <span>currency you all know</span> against the burle for tomorrow. Now Anton knows that tomorrow the exchange
 rate will be an even number, which can be obtained from the present rate by swapping exactly two distinct digits in it. Of all the possible values that meet these conditions, the exchange rate for tomorrow will be the maximum possible. It is guaranteed that
 today the exchange rate is an <span>odd</span> positive integer <span><em>n</em></span>. Help Anton to determine the exchange
 rate of <span>currency you all know</span> for tomorrow!</p>

<p>
</p>
<p>
Input</p>
<p>
The first line contains an odd positive integer <span><em>n</em></span> — the exchange rate of <span>currency you all know</span> for
 today. The length of number <span><em>n</em></span>'s representation is within range from <span>2</span> to <span>10<span>5</span></span>,
 inclusive. The representation of <span><em>n</em></span> doesn't contain any leading zeroes.</p>

<p>
</p>
<p>
Output</p>
<p>
If the information about tomorrow's exchange rate is inconsistent, that is, there is no integer that meets the condition, print <span>?-?1</span>.</p>
<p>
Otherwise, print the exchange rate of <span>currency you all know</span> against the burle for tomorrow. This should be the maximum possible number of those that are even and that are obtained from today's
 exchange rate by swapping exactly two digits. Exchange rate representation should not contain leading zeroes.</p>

<p>
</p>
<p>
Sample test(s)</p>
<p>
</p>
<p>
</p>
<p>
input</p>
<pre class="brush:php;toolbar:false">527
登入後複製

output

572
登入後複製

input

4573
登入後複製

output

3574
登入後複製

input

1357997531
登入後複製

output

-1
登入後複製
登入後複製



给一个很长的数字,至少两位数,最多10的五次方位的一个奇数,让你调换其中两个数位,将其变为可变的各种选择中最大的偶数并输出,如果做不到则输出-1。

很显然,最后一位决定了奇偶,所以调换的两位中确定了一位是末位,然后,做不到的意思就是数字中没有偶数数字,特例排除后我们来考虑如何最大。

因为数字太大,所以我们不能直接加减甚至无法记录最大值,但是我们在纸上写一写就能发现,很明显调换后与调换前的差一定是一个 A99999...999B 的数,而AB作为一个两位数来看就是两个调换位调换前后的两位数的差,即 10*B+A-10*A-B=9*(B-A) ,连9我们都不必要了…… 我们就简单的通过正负(zf)、9的个数(digit)和差值(sub)来记录就可以啦~ 话说我为啥要把正负提出来!!! 直接正负和差值用一个int不就可以了么!我真傻……真的……

Code:

#include <map>
#include <cmath> 
#include <cctype>
#include <cstdio>
#include <string>
#include <cstdlib>
#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std;

#define Max(a,b) ((a)>(b)?(a):(b))
#define Min(a,b) ((a) b;
}

string s;	
string ans;
int zf,digit,sub;
int tzf,td,ts,len; //temp zf,dig,sub
map<int> m;

void update(int pos)
{
	zf=tzf;
	digit=td;
	sub=ts;
	ans=s;
	char temp=ans[pos];
	ans[pos]=ans[len-1];
	ans[len-1]=temp;
}

int main()
{
	m.clear();
	cin>>s;
	len=s.length();
	int tail=s[len-1]-'0';
	for(int i=0;i<len int num="s[i]-'0';" if m cout return zf="-1,digit=100001,sub=99;" tzf="0,td=0,ts=0;" for>::iterator it=m.begin(); it!=m.end(); ++it)
	{
		//cout first  " second first;
		int now=s[pos]-'0';
		tzf=1;
		ts=tail-now; //*9 略去 
		td=s.length()-pos;
		if(tszf) update(pos);
		else if(tzf==1 && zf==1)
		{
			if(td>digit) update(pos);
			else if(td==digit)
			{
				if(ts>sub) update(pos);
			}
		}
		else if(tzf==-1 && zf==-1)
		{
			if(td<digit update else if cout return><br>

<h3 id="Another-Code">Another Code:</h3>

<pre class="brush:php;toolbar:false">#include<stdio.h>
#include<string.h>
int n,i,x,minpos=-1;
char a[100010],t;
int main(){
    scanf("%s",a);
    n=strlen(a);
    for(i=0;i<n-1 if>a[i]){
                t = a[n-1] , a[n-1] = a[i] , a[i] = t;
                printf("%s\n",a);
                return 0;
            }
            else{
                minpos = i;
            }
        }
    }
    if(minpos==-1){
        printf("-1\n");
    }
    else{
        t = a[n-1] , a[n-1] = a[minpos] , a[minpos] = t;
        printf("%s\n",a);
        return 0;
    }
}</n-1></string.h></stdio.h>
登入後複製


C. Anya and Ghosts

time limit per test

2 seconds

memory limit per test

256 megabytes

input

standard input

output

standard output

Anya loves to watch horror movies. In the best traditions of horror, she will be visited by m ghosts tonight. Anya has lots of candles prepared for the visits, each candle can produce light for exactly t seconds. It takes the girl one second to light one candle. More formally, Anya can spend one second to light one candle, then this candle burns for exactly t seconds and then goes out and can no longer be used.

For each of the m ghosts Anya knows the time at which it comes: the i-th visit will happen wi seconds after midnight, all wi's are distinct. Each visit lasts exactly one second.

What is the minimum number of candles Anya should use so that during each visit, at least r candles are burning? Anya can start to light a candle at any time that is integer number of seconds from midnight, possibly, at the time before midnight. That means, she can start to light a candle integer number of seconds before midnight or integer number of seconds after a midnight, or in other words in any integer moment of time.

Input

The first line contains three integers mtr (1?≤?m,?t,?r?≤?300), representing the number of ghosts to visit Anya, the duration of a candle's burning and the minimum number of candles that should burn during each visit.

The next line contains m space-separated numbers wi (1?≤?i?≤?m1?≤?wi?≤?300), the i-th of them repesents at what second after the midnight the i-th ghost will come. All wi's are distinct, they follow in the strictly increasing order.

Output

If it is possible to make at least r candles burn during each visit, then print the minimum number of candles that Anya needs to light for that.

If that is impossible, print ?-?1.

Sample test(s)

input

1 8 3
10
登入後複製

output

3
登入後複製

input

2 10 1
5 8
登入後複製

output

1
登入後複製

input

1 1 3
10
登入後複製

output

-1
登入後複製
登入後複製

Note

Anya can start lighting a candle in the same second with ghost visit. But this candle isn't counted as burning at this visit.

It takes exactly one second to light up a candle and only after that second this candle is considered burning; it means that if Anya starts lighting candle at moment x, candle is buring from second x + 1 to second x + t inclusively.

In the first sample test three candles are enough. For example, Anya can start lighting them at the 3-rd, 5-th and 7-th seconds after the midnight.

In the second sample test one candle is enough. For example, Anya can start lighting it one second before the midnight.

In the third sample test the answer is ?-?1, since during each second at most one candle can burn but Anya needs three candles to light up the room at the moment when the ghost comes.


安娜是个小姑娘,有m只鬼晚上要来安娜家(鬼登门拜访的时间以升序给出),小姑娘每秒钟可以点燃1根蜡烛,蜡烛可以燃烧t秒,每只鬼到她家的时候她家需要有至少r根蜡烛在燃烧,问最少用多少根蜡烛可以渡过难关。

首先我们需要考虑“-1”即做不到,是什么情况,每秒都在点蜡烛但是在任何一秒都无法实现同时有r根蜡烛在亮着,那么,m

当m>=r时,我们在任一根蜡烛燃烧的最后一秒时点燃一根蜡烛,蜡烛熄灭的同时新蜡烛燃烧第一秒,就可以达成延续r根蜡烛的状态。首先,第一只鬼来的时候很明显为了不浪费蜡烛的持续时间,我们从鬼来的前一秒点燃开始向前推,前1秒到前r秒都在点蜡烛,这时在第一个鬼来的时候刚好r根蜡烛而且他们总剩余燃烧时间最大,什么你问我如果鬼第一秒就来了怎么点?仔细看题:That means, she can start to light a candle integer number of seconds before midnight or integer number of seconds after a midnight, or in other words in any integer moment of time.

然后我们用lgt(light)数组来记录每一秒的当前亮度是多少,为了得知某根蜡烛啥时候灭,我们在点燃的时候就在lgt[当前秒数+t]处赋值-1,这样dp推到那里的时候就会自动减一达到减少的效果了,我们从第一秒开始推,当遇到鬼了我们要看现在光够不够,不够的话从前一秒开始向前补蜡烛,然后一路向后,最终蜡烛数必然是最小,也算是一个贪心dp的感觉吧

Code:

#include <cmath> 
#include <cctype>
#include <cstdio>
#include <string>
#include <cstdlib>
#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std;

#define Max(a,b) ((a)>(b)?(a):(b))
#define Min(a,b) ((a) b;
}

int vit[666]={0};
int lgt[666]={0};	//degree of light

int main()
{	
	int c=0;
	int m,t,r;	cin>>m>>t>>r;
	if(t<r for i="1;i<=m;i++)" scanf int now="1;" lgt if dec="r-lgt[i];" c vt="i+t;i+t-vt<dec;vt--)" cout return><br>
<br>
</r></algorithm></iostream></cstring></cstdlib></string></cstdio></cctype></cmath>
登入後複製







本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

雲頂之弈s11什麼時候結束 雲頂之弈s11什麼時候結束 Mar 18, 2024 pm 03:16 PM

雲頂之弈的每個賽季都大約3個多月左右,目前雲頂之弈S11賽季美測服於3月7日更新上線,雲頂之弈和金鏟鏟於3月21日更新上線,推測s11賽季大概於7月初結束。雲頂之弈s11什麼時候結束答:7月初。 1.推測s11賽季大概在7月初結束,具體的結束日期還需要等待官方公佈。 2.雲頂之弈每季大約3個多月。 3.雲頂之弈S11賽季美測服於3月7日更新上線,雲頂之弈和金鏟鏟於3月21日更新上線。 4.S11賽季將加入一個全新的玩法機制,此外還將增加20多種新的奧恩神器。

如何快速關閉Win11後台運行的快捷鍵? 如何快速關閉Win11後台運行的快捷鍵? Dec 28, 2023 am 09:54 AM

我們在用電腦的時候,難免會遇到一堆後台保持運行,導致拖慢了系統速度的問題,這時候有沒有win11結束後台運行快捷鍵呢,其實我們只能快捷鍵打開任務管理器再關閉後台。 win11結束背景執行快速鍵:1、首先,我們按下鍵盤「ctrl+shift+esc」組合快速鍵,從而開啟工作管理員頁面。 2.在任務管理器頁面中,使用滑鼠點選選擇「名稱」按鈕選項。 3.之後頁面跳轉,我們就可以直接看到目前運行的所有「後台進程」了。 4.根據實際需要我們選擇想要關閉的後台,在該選項的右下角點擊「結束任務」即可。

使用電腦工作管理員的快速鍵來結束任務的方法 使用電腦工作管理員的快速鍵來結束任務的方法 Jan 02, 2024 pm 01:34 PM

很多小夥伴在使用電腦的時候遇見某個軟體卡住。電腦動不了的情況,這個時候就需要調出任務管理器來結束這個進程,調出來後該如何使用快捷鍵結束這個任務呢?最簡單的莫過於delete,還有其他的方法,下面一起來看看吧。工作管理員結束任務快速鍵使用方法任務管理器的快速鍵使用方法:1、組合鍵「Ctrl+Shift+ESC」。 2、組合鍵「Ctrl+Alt+Delete」。結束任務的快速鍵1、選定需要結束的任務點選「Delete」。 2、選擇需要結束的任務,組合鍵「alt+e」。

騰訊會議如何結束會議-騰訊會議結束會議的具體操作 騰訊會議如何結束會議-騰訊會議結束會議的具體操作 Mar 05, 2024 pm 12:16 PM

你們在辦公中是不是也經常使用騰訊會議軟體呀?那麼你們曉得騰訊會議如何結束會議嗎?接下來,小編就為大夥帶來了騰訊會議結束會議的具體操作,對此感興趣的用戶一同來下文看看吧。打開電腦,雙擊進入騰訊會議,然後登入點擊進入快速會議點擊結束會議按鈕即可

css怎麼實作div缺一個角 css怎麼實作div缺一個角 Jan 30, 2023 am 09:23 AM

css實作div缺少一個角的方法:1、建立一個HTML範例文件,並定義一個div;2、給div設定寬高背景色;3、給需要刪除一角的div增加一個偽類,將偽類設定成跟背景色一樣的顏色,然後旋轉45度,再定位到需要去除的那個角落即可。

基於 ChatGPT API 的劃詞翻譯瀏覽器腳本實現 基於 ChatGPT API 的劃詞翻譯瀏覽器腳本實現 May 01, 2023 pm 03:28 PM

前言最近GitHub上有個基於ChatGPTAPI的瀏覽器腳本,openai-translator,短時間內star衝到了12k,功能上除了支援翻譯外,還支援潤飾和總結功能,除了瀏覽器插件外,還使用了tauri打包了一個桌面客戶端,那拋開tauri是使用rust部分,那瀏覽器部分實作還是比較簡單的,今天我們就來手動實作一下。 openAI提供的介面例如我們可以複製以下程式碼,在瀏覽器控制台中發起請求,就可以完成翻譯//範例constOPENAI_API_KEY="s

iframe和div有什麼不同 iframe和div有什麼不同 Aug 28, 2023 am 11:46 AM

iframe和div的不同是iframe主要用於引入外部內容,可以載入其他網站的內容或將一個網頁分割成多個區域,每個區域有自己的獨立的瀏覽上下文,而div主要用於分割和組織內容的區塊,用於佈局和样式控制。

div盒模型是什麼 div盒模型是什麼 Oct 09, 2023 pm 05:15 PM

div盒模型是用於網頁佈局的模型,它將網頁中的元素視為一個個矩形的盒子,這個模型包含了四個部分:內容區域、內邊距、邊框和外邊距。 div盒模型的好處是可以輕鬆控制網頁佈局和元素之間的間距,透過調整內容區域、內邊距、邊框和外邊距的大小,可以實現各種不同的佈局效果,盒模型也提供了一些屬性和方法,可以透過CSS和JavaScript來動態地改變盒子的樣式和行為。

See all articles