avatar
A*t
1
假设2^i3^j的序列从小到大排起来:1, 2, 3, 4, 6, 8, 9, 12, 16, 18, 27...
给出m和n (都很大,m<=10^15, n <= 10^9)。
求这个序列前m项和对n取模的值。
avatar
S*e
2
感觉这个有点像CC150里数学概率部分的最后一题?
avatar
g*g
3
2^i3^j的序列从小到大排起来
求这个序列是mlogm
至于mod n这个cost可不计
avatar
g*g
4
struct Node23 {
int i;
int j;
int w;
bool operator> (const Node23& n) const{
return w > n.w;
}
Node23(int i, int j) : i(i), j(j), w(pow(2,i)*pow(3,j)) {}
};
int getTopN23s(int m, int n)
{
priority_queue, greater > q;
q.push(Node23(0,0));
int sum = 0;
for(int i=0; i{
Node23 node = q.top();
q.pop();
sum = (sum + node.w) %n;
cout<if (node.i{
q.push(Node23(node.i,node.j+1));
}
else if (node.i>node.j)
{
q.push(Node23(node.i+1,node.j));
}
else
{
q.push(Node23(node.i+1,node.j));
q.push(Node23(node.i,node.j+1));
q.push(Node23(node.i+1,node.j+1));
}
}
return sum;
}
avatar
A*t
5
10^15啊

【在 g*****g 的大作中提到】
: struct Node23 {
: int i;
: int j;
: int w;
: bool operator> (const Node23& n) const{
: return w > n.w;
: }
: Node23(int i, int j) : i(i), j(j), w(pow(2,i)*pow(3,j)) {}
: };
: int getTopN23s(int m, int n)

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。