好玩的木樁(思維題)
好玩的木樁
Time Limit: 2000/1000ms (Java/Others)
Problem Description:
一天,小明來到一個農場,看到農場上有許許多多的木樁,這些木樁被擺成一個m*n的矩陣,而且木樁的長度只有兩種,那麼我們用1來表示長木樁,0表示短木樁,小明突然想到一個好玩的事情:如果我們能移動矩陣的行,問最大可以得到全是長木樁(都是1)矩陣的面積。
Input:
第一行,輸入兩個數m,n,(0<m,n<=5000); 然後輸入m*n大小的0,1矩陣。
Output:
最大可以得到全是長木樁(都是1)矩陣的面積。對於每組資料,輸出答案,佔一行。
Sample Input:
4 3 100 011 000 101
Sample Output:
2
思路:先寫出每行的每列向左延伸的最大值,如01111就是01234;此後,再對每列進行排序(從小到大),這樣就能保證上面的都能被下面的擴充。本題還有個關鍵點,如何對二維陣列的列進行排序?(這個可以轉換下思維)
附上AC程式碼:
#include<bits/stdc++.h>
#define ll long long
using namespace std;
int main()
{
int n;
while(cin >> n){
while(n--)
{
ll l,r;
cin >> l >> r;
int rr[100];
int ll1[100];
memset(rr,0,sizeof(rr));
memset(ll1,0,sizeof(ll1));
int s = 0;
int s2 = 0;
ll r1 = r;
while(r)
{
if(r&1)
rr[s++] = 1;
else
rr[s++] = 0;
r>>=1;
}
while(l)
{
if(l&1)
ll1[s2++] = 1;
else
ll1[s2++] = 0;
l>>=1;
}
int maxx = max(s,s2);
int f = -1;
ll sum = 0;
for(int i = maxx-1;i >= 0;i--)
{
if(ll1[i] != rr[i])
{
f = i;
break;
}
else if(ll1[i] == 1)
sum+=(ll)(pow(2,i)+0.5);
}
ll x = 1;
if(f == -1)
cout << r1 <<endl;
else
{
f++;
while(f--)
{
sum+=x;
x<<=1;
}
cout << sum <<endl;
}
}}
return 0;
}
相關文章
- 閱讀記憶宮殿的定樁法和思維導圖
- 如何用遊戲化思維構建 "好玩" 的遊戲平臺遊戲
- AtCoder Beginner Contest 中的小思維題
- 思維題專項訓練
- 組合計數思維題
- 思維體系---技術思維、業務資料思維、產品思維、複合思維
- Find the Maximum - 題解【思維,貪心】
- 淺析工具思維、產品思維、品牌思維與定位
- 求職思維和招聘思維求職
- CF538B Quasi Binary 思維題
- 怎麼凸顯主題?極思維
- 測試筆試邏輯思維題筆試
- 記一個簡單的sql題:思維擴散SQL
- 英語思維與物件導向分析思維的關係物件
- 把流量思維變成留量思維
- 系統分析與綜合思維相結合:又見森林又見樹木 - hjorteland
- zcmu——2014: 一生之敵(思維題)
- 框架思維框架
- 極思維
- 黑客思維黑客
- 一些好玩的數學題
- 遊戲IP影視化在中國:題材更新迭代,玩家思維PK觀眾思維遊戲
- 2312、賣木頭塊 | 面試官與狂徒張三的那些事(leetcode,附思維導圖 + 全部解法)面試LeetCode
- 思維決定命運,從四個方面理解深度思維的概念
- 你是整體思維還是分析思維? - kentbeck
- Duel 好玩:題目總結
- 計算思維
- 模型思維(01)模型
- erp管理的七種思維
- 正思維的操作步驟
- 經濟學的思維方式
- 突破自己的技術思維
- 不可思議的DNF:竟然已經火了11年,到底好玩在哪裡?
- 提升思維邏輯—SimpleMind Pro(思維導圖) for Mac/winMac
- 什麼是產品思維和專案思維? - Shreyas
- 《計算思維史話》思維導圖——持續更新
- 創新思維框架:第一原則思維 - Neil Kakkar框架
- 智慧充電樁遠端運維管理系統運維