關於高精度演算法的小理解大家可以看看我的文章嘿嘿嘿 **高精度演算法
一.題目描述
恰逢 h 國國慶,國王邀請 n 位大臣來玩乙個有獎遊戲。首先,他讓每個大臣在左、右手上面分別寫下乙個整數,國王自己也在左、右手上各寫乙個整數。然後,讓這 n 位大臣排成一排,國王站在隊伍的最前面。排好隊後,所有的大臣都會獲得國王獎賞的若干金幣,每位大臣獲得的金幣數分別是:排在該大臣前面的所有人的左手上的數的乘積除以他自己右手上的數,然後向下取整得到的結果。
國王不希望某乙個大臣獲得特別多的獎賞,所以他想請你幫他重新安排一下隊伍的順序,使得獲得獎賞最多的大臣,所獲獎賞盡可能的少。注意,國王的位置始終在隊伍的最前面。
輸入第一行包含乙個整數 n,表示大臣的人數。 第二行包含兩個整數 a 和 b,之間用乙個空格隔開,分別表示國王左手和右手上的整數。 接下來 n 行,每行包含兩個整數 a 和 b,之間用乙個空格隔開,分別表示每個大臣左手 和右手上的整數。
輸出輸出只有一行,包含乙個整數,表示重新排列後的隊伍中獲獎賞最多的大臣所獲得的 金幣數
樣例輸入 copy
31 1
2 37 4
4 6樣例輸出 copy
2二.思路(這個思路據說經常有用所以就寫的細一點啦!!)
不要忘記高精度演算法的使用哦!!!否則oj過不去啊資料太大了要命啊~
#include
using
namespace std;
int a[
10001
],b[
10001
],d[
10001];
struct nodeq[
1001];
intread()
while
(c>=
'0'&&c<=
'9')
return a1*sign;
}bool
cmp(node a1,node b1)
void
chengfa
(int a1)
for(
int i=
1;i<=a[0]
+4;i++)if
(a[i]!=0
)//條件可避免位數多了
}return;}
intchufa
(int b1)
e%=b1;
//確定餘數 }}
bool
bijiao()
}if(b[0
]>d[0]
)return1;
if(b[0]
)return0;
}void
fuzhi()
return;}
intmain()
sort
(q+1
,q+1
+n,cmp)
;//從小到大排序
a[0]=
1;a[1]=
1;for(
int i=
1;i<=n;i++
)for
(int i=d[0]
;i>=
1;i--
)return0;
}
貪心 高精度 國王遊戲
恰逢 h 國國慶,國王邀請 n 位大臣來玩乙個有獎遊戲。首先,他讓每個大臣在左 右手上面分別寫下乙個整數,國王自己也在左 右手上各寫乙個整數。然後,讓這 n 位大臣排成一排,國王站在隊伍的最前面。排好隊後,所有的大臣都會獲得國王獎賞的若干金幣,每位大臣獲得的金幣數分別是 排在該大臣前面的所有人的左手...
noip 國王遊戲 貪心 高精度
說實話我一開始是不想發這道題的,雖然比較水,但不知道是不是因為我太久都沒有寫高精度了,還是寫錯了,才40分,還是發上來吧。恰逢h國國慶,國王邀請n位大臣來玩乙個有獎遊戲。首先,他讓每個大臣在左 右手上面分別寫下乙個整數,國王自己也在左 右手上各寫乙個整數。然後,讓這n位大臣排成一排,國王站在隊伍的最...
國王的遊戲(貪心 高精度)
恰逢 h 國國慶,國王邀請 n 位大臣來玩乙個有獎遊戲。首先,他讓每個大臣在左 右手上面分別寫下乙個整數,國王自己也在左 右手上各寫乙個整數。然後,讓這 n 位大臣排成一排,國王站在隊伍的最前面。排好隊後,所有的大臣都會獲得國王獎賞的若干金幣,每位大臣獲得的金幣數分別是 排在該大臣前面的所有人的左手...