1.【題目描述】
妞妞公主新得到一塊白色棋盤。這塊棋盤共有n行m列,任意相鄰的兩個格仔都是不同的顏色(黑或白),座標位(1,1)的格仔是白色的。
這一天牛牛來看妞妞公主時,牛牛公主正望著棋盤發呆。牛牛看妞妞公主悶悶不樂的樣子,便對妞妞公主說:「只要你告訴我n和m,我能馬上算出黑色方塊的白色方塊的數量。」
「這太簡單了。」妞妞公主想了一會,「我會在這n行m列中選擇乙個左下角座標位(x0,y0)。右上角座標為(x1,y1)的矩形,把這個矩形裡的共(x1-x0+1)*(y1-y0+1)個方塊全部塗白。你還能馬上算出黑色方塊和白色方塊的數量嗎?」
「這太簡單了。」牛牛自信一笑,「你還可以在執行塗白操作後再選擇乙個左下角座標為(x2,y2),右上角座標為(x3,y3)的矩形,把這個矩形裡的方塊全部塗黑。我依然能馬上算出黑色方塊和白色方塊的數量。」
妞妞公主終於驚訝地睜大了眼睛,於是丟擲了她的t次提問。
聰明的牛牛當然會做了,但是他想把這個問題交給你,請幫牛牛算出每次提問棋盤的黑白方塊數目吧。
輸入描述:
第一行乙個整數t,表示妞妞公主一共提問了t次。
接下來3t行,
第(1+3i)行兩個整數n,m。表示第i次提問時棋盤的大小;
第(2+3i)行四個整數x0,x1,y0,y1。表示第i次提問時塗白操作選取的兩個座標。
第(3+3i)行四個整數x2,y2,x3,y3。表示第i次提問時塗黑操作選取的兩個座標。
1<=t<=10000,1<=x<=n<=1000000000,1<=y<=m<=1000000000,x0<=x1,y0<=y1,x2<=x3,y2<=y。
輸出描述:
共t行,每行兩個整數分別表示白色方塊的數量和黑色方塊的數量。
輸入樣例:
31 3
1 1 1 3
1 1 1 3
3 31 1 2 3
2 1 3 3
3 42 1 2 4
1 2 3 3
輸出樣例:
0 33 6
4 82.【**】(具體分析見**注釋)
/*
妞妞的問題
31 3
1 1 1 3
1 1 1 3
3 31 1 2 3
2 1 3 3
3 42 1 2 4
1 2 3 3
*/#includeusing namespace std;
long long x[8], y[8]; //每次選擇的座標
int main()
if ((x[0] + y[0]) & 1) //選擇的第乙個區域,如果左下角是乙個黑色方格
else
white += d; //白色方塊增加d
black -= d; //黑色方塊減少d
if ((x[2] + y[2]) & 1) //選擇的第二個區域,如果左下角是乙個黑色方格
else
white -= d; //白色方塊減少d
black += d; //黑色方塊增加d
/*計算重疊部分*/
a = max(x[0], x[2]);
b = max(y[0], y[2]);
c = min(x[1], x[3]);
d = min(y[1], y[3]);
if (c < a || d < b) //無重複區域
else
else
white -= e; //白色方塊減少d(減去重複範圍內白色方塊增加的數目)
black += e; //黑色方塊增加d
} printf("%lld %lld\n", white, black);
} return 0;
}
3.【執行結果】
妞妞打車之最多的硬幣
妞妞參加完google girl hackathon之後,打車回到了牛家莊。妞妞需要支付給計程車司機車費s元。妞妞身上一共有n個硬幣,第i個硬幣價值為p i 元。妞妞想選擇盡量多的硬幣,使其總價值足以支付s元車費 即大於等於s 但是如果從妞妞支付的這些硬幣中移除乙個或者多個硬幣,剩下的硬幣總價值還是...
歡迎毛毛與妞妞使用CSDN markdown編輯器
建立乙個自定義列表 如何建立乙個註腳 注釋也是必不可少的 katex數學公式 新的甘特圖功能,豐富你的文章 uml 圖表 flowchart流程圖 匯出與匯入 你好!這是你第一次使用markdown編輯器所展示的歡迎頁。如果你想學習如何使用markdown編輯器,可以仔細閱讀這篇文章,了解一下mar...
問題的問題
有些問題是人出的,或者人造成的 而有些問題是 上帝 出的。我們可以說成是人題和天題。人題一般都是可以解決的,而天題,人根本就找不到答案。人題的解決不會給我們帶來快樂,而天題帶給我們的只是苦惱和困惑。人從出生到死亡,一直都處於迷失和困惑中,因為大部分的東西他都不知道是怎麼回事。是的,他可以不知道,同樣...