一條長為n的路,需要用路燈點亮,其中"."表示需要點亮的位置,"x"表示無需點亮的位置,假設燈立在i處,則它可以點亮i-1,i,i+1三個位置,問至少需要多少燈才能點亮整條路。
乍一看,肯定是動態規劃:
上**,敲了兩個小時的動態規劃:
#include #include #include #include using namespace std;
const int inf=10000000;
char a[105];
//到i點至少點燃了x個燈,最後乙個燈的位置為j的情況下,道路被點亮了
int dp[105][105];
int main()
}dp[0][0]=0;
for(int i=1;i<=len;i++)
else if(a[i]=='.')
}for(int j=0;j<=i-2;j++)
else}}
for(int j=0;j<=i-3;j++)
}else}}
}for(int i=0;i<=len;i++)
}return 0;
}
而實際上呢,如果不要那麼浮躁,再看看題目,你就會發現,這題目貪心就能解決。只要有"."在長度為3的範圍內,點亮乙個火把就可以了。
#include using namespace std;
char s[105];
int solve(char s, int n)
}return ans;
}int main()
從這道題目,也可以看出,乙個浮躁狀態的人是不會多想,有一點想法就會去義無反顧的走下去,浪費時間精力,並且在沒有想清楚的情況下就去否定別人的解決,想當然,並且急躁。
乙個好的程式設計人員,一定是會有乙個好的程式設計心境!這至關重要!
一道筆試程式設計題
有乙個無向圖,寫乙個函式判斷圖中是否存在迴路。函式原型如下 int ring int array,int n,int k n為圖中的頂點數,k為圖中的邊數,array其實是乙個k行2列的二維陣列,其中的元素比如 0,1 表示頂點0和頂點1之間存在邊。圖中如果存在迴路,函式返回1,否則返回0。不知哪位...
筆試程式設計題一道
一道華為程式設計題目,int a nsize 其中隱藏著若干0,其餘非0整數,寫乙個函式int func int a,int nsize 使a把0移至後面,非0整數移至陣列前面並保持有序 按原來順序 返回值為原資料中第乙個元素為0的下標。盡可能不使用輔助空間且考慮效率及異常問題,注釋規範且給出設計思...
一道程式設計題
題目要求 1 自己給定乙個集合 元數個數不得少於10個 2 讓使用者任一輸入乙個整數 3 根據使用者輸入的整數,移除集合中相應的元素 請根據示例找出元素移除的規律 4 運算結束後,集合中所有元素均被移除 示例 集合元素為 a b c d e f g h i j 使用者輸入的整數為 3 集合元素被移除...