這次沒有爆零
有點感動
題目大意:有乙個數x 在範圍0~ (2^n)-1 內
詢問 乙個數 y 給出答案 x & y==y
可以詢問多次 詢問之後 一起給出回答
可以簡單證明得到
範圍是 0~(2^n)-1時 需要n個數得到最小的方案數
因為兩個方案的詢問次序不同可算作兩種方案
所以 答案是 n !
ps:當n>1000003 時 乘積已經可以整除1000003了 得到0
舉個栗子:
}所以分子是 3 8 15 24……
分母是9
(不是我推的 我好菜啊tat)
然後求逆元emmm
#include #include #include #include #include using namespace std;
#define ll long long
ll const mod = 998244353;
ll quickpow(ll x, ll n)
res = (res % mod * (res % mod)) % mod ;
n = n >> 1;
}return ans;
}int main()
// printf("%lld\n", quickpow(9,mod-2)%mod);
printf("%lld\n", (ans * quickpow(9, mod - 2)) % mod);
}return 0;
}
參考:
用了bin巨的模板 但是 這是找主席樹第k小的
所以在最後算三角形周長的時候需要 變換一下
找最大的能組成三角形的三個數
#include #include #include #include #include #include using namespace std;
#define ll long long
const int maxn = 100010;
const int m = maxn * 30;
int q, n, m, tot;
int a[maxn], t[maxn];
int t[maxn], lson[m], rson[m], c[m];
void init_hash()//將陣列複製到另乙個陣列 並排序去重
sort(t + 1, t + 1 + n);
m = unique(t + 1, t + 1 + n) - t - 1;
}int build(int l, int r)//建樹
return root;
}int hash(int x)//快速找到x的位置
int update(int root, int pos, int val)//更新節點
else
c[newroot] = c[root] + val;
}return tmp;
}int query(int left_root, int right_root, int k)//查詢l ~r中第k小的
else
}return l;
}int main()
init_hash();
t[n + 1] = build(1, m);
for (int i = n; i > 0; i--)
while (q--)
m--;
}printf("%lld\n", ans);}}
return 0;
}
題目大意:給 n 個數字,這串數字中範圍是1~c,合法條件是某一段區間內出現任何乙個數字,它出現的次數》=k或者=0
求合法條件下的最長連續子串行的長度是多少?
2019暑假多校訓練第七場 部分題解
這一次是華東師範大學出的題目 出題人說 一不小心出成了 沒人ac數量最多的一場多校 我最開始看的就是e題 想了好久 以為自己找到規律了 其實並沒有 到比賽結束也沒人a這題 靠川醬carry全場 大意 一共有n道題目,總分為m,學生為了得到x分的成績需要學習x 1小時,他需要對k道題目,求他最少複習多...
2019杭電多校訓練第二場1002
題意 給出n個數,接下來有m次操作。1 k 在陣列後面多加乙個k。n n 1 0 l r 詢問 l,r 區間內任意取數,異或和的最大值。特別要注意的是2種操作都加密了,1號操作需要k k lasten 2號操作需要l l lasten n 1,r r lasten n 1.lasten初始值為0,以...
2019牛客暑期多校訓練營(第二場)
題意 題解 c 版本一 include using namespace std typedef long long ll const int mod 1e9 7 ll power ll a,ll b a是底數,b是次冪 return ans ll phi ll n 求尤拉函式值 返回值為多少個與n互...