Số bài đã giải: 30
Hạng điểm: #6815
Tổng điểm:
6,75
Đóng góp:
0
Đã tham gia 3 kỳ thi
Hạng rating: #1958
Rating: 1508
Min. rating: 1403
Max rating: 1508
Từ Trường THPT chuyên Đại học Sư phạm Hà Nội, Trường THPT Chuyên Chu Văn An, Hà Nội
Thông tin
#include <bits/stdc++.h>//+ - sl
using ll = long long;
using namespace std;
string csl(string a, string b) {
int nho = 0; string s = "";
while (a.size() < b.size()) a = '0' + a;
while (b.size() < a.size()) b = '0' + b;
for (int i = b.size() - 1; i >= 0; i--) {
int x = (a[i] - '0') + (b[i] - '0') + nho;
s += char((x % 10) + '0');
nho = x / 10;
}
if (nho) s += char(nho + '0');
reverse(s.begin(), s.end());
return s;
}
string tsl(string a, string b)
{
while(a.size()<b.size())a='0'+a;
while(a.size()>b.size())b='0'+b;
int nho=0;string kq;
if(a<b) {
swap(a,b);
for(int i=a.size()-1; i>=0; i--)
{long long d=(a[i]-'0')-(b[i]-'0')-nho;
if(d>=0)
{
kq=char(d+'0')+kq;nho=0;
}
if(d<0)
{
long long z=10+d;nho=1;
kq=char(z+'0')+kq;
}
}
while(kq[0]=='0' && kq.size()>1)
{
kq.erase(kq.begin());
}kq='-'+kq;
}
else {
for(int i=a.size()-1; i>=0; i--)
{
long long d=(a[i]-'0')-(b[i]-'0')-nho;
if(d>=0)
{
kq=char(d+'0')+kq;
nho=0;
}
if(d<0)
{
long long z=10+d;
nho=1;
kq=char(z+'0')+kq;
}
}
while(kq[0]=='0' && kq.size()>1 )
{
kq.erase(kq.begin());
}
}
return kq;
}
int main() {
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
string a, b;
cin >> a >> b;
cout << csl(a, b);
return 0;
}
#include <bits/stdc++.h>//double hash
#define Base1 311
#define Base2 499
using namespace std;
const int mod1 = 1e9 + 7;
const int mod2 = 1e9 + 9;
const int nm = 1e6 + 5;
using ll = unsigned long long;
ll Sum1[nm], Sum2[nm], base_pow1[nm], base_pow2[nm];
string s;int n;
ll get_combined_hash(int l, int r) {
ll hash1 = (Sum1[r] - Sum1[l - 1] * base_pow1[r - l + 1] % mod1 + mod1) % mod1;
ll hash2 = (Sum2[r] - Sum2[l - 1] * base_pow2[r - l + 1] % mod2 + mod2) % mod2;
return hash1 * (mod2 + 1) + hash2;
}
int main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cin >> s;
n = s.size();
s = " " + s;
Sum1[0] = 0; base_pow1[0] = 1;
Sum2[0] = 0; base_pow2[0] = 1;
for (int i = 1; i <= n; i++) {
Sum1[i] = (Sum1[i - 1] * Base1 + (s[i] - 'a' + 1)) % mod1;
Sum2[i] = (Sum2[i - 1] * Base2 + (s[i] - 'a' + 1)) % mod2;
base_pow1[i] = (base_pow1[i - 1] * Base1) % mod1;
base_pow2[i] = (base_pow2[i - 1] * Base2) % mod2;
}
}
#include <bits/stdc++.h>// tinh so xau con palindrome
#define pii pair<int,int>
#define Base 311
#define ll long long
using namespace std;
const int mod = 1e9 + 7;
const int inf = 1e9;
const int nm = 1e5 + 5;
using namespace std;
ll n,Sum[nm],rSum[nm],CS[nm],dem;
ll get_hash(int l, int r) {
ll ans = (Sum[r] - (Sum[l-1] * CS[r-l+1])+1ll*mod*mod) % mod;
return ans;
}
ll get_rhash(int l, int r) {
ll ans = (rSum[l] - (rSum[r+1] * CS[r-l+1]) + 1ll * mod * mod) % mod;
return ans;
}
bool check(int i,int len)
{
if(i-len+1<1||i+len-1>n)return false;
ll x=get_hash(i-len+1,i+len-1);
ll y=get_rhash(i-len+1,i+len-1);
//cout<<x<<" "<<y<<"\n";
return (x==y);
}
bool check2(int i,int len)
{
if(i-len+1<1||i+len>n)return false;
ll x=get_hash(i-len+1,i+len);
ll y=get_rhash(i-len+1,i+len);
//cout<<x<<" "<<y<<"\n";
return (x==y);
}
int main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
string s;
cin >> s;
n = s.size();
s = " " + s;
CS[0] = 1;
for (int i = 1; i <= n; i++)
{
Sum[i] = (Sum[i-1] * Base + s[i]) % mod;
CS[i] = (CS[i-1] * Base) % mod;
}
for(int i=n;i>=1;i--)
rSum[i] = (rSum[i+1] * Base + s[i]) % mod;
int x=check(1,1);
for (int i = 1; i <= n; i++) {
int l = 1, r = n;
while (l <= r) {
int mid = (l + r) / 2;
if (check(i, mid)) l = mid + 1;
else r = mid - 1;
}
dem += r;
}
for (int i = 1; i <= n-1; i++) {
int l = 1, r = n;
while (l <= r) {
int mid = (l + r) / 2;
if (check2(i, mid)) l = mid + 1;
else r = mid - 1;
}
dem += r;
}
cout << dem;
}
#include <bits/stdc++.h>//SO HOC tinh ckn
using namespace std;
using ll = ll;
const int nm = 1e7 + 5;
const int mod = 1e9 + 7;
ll gt[nm + 5], rgt[nm + 5],a[nm],dem;
ll power(ll a, ll b, int mod) {
if (b == 0) return 1;
ll x = power(a, b / 2, mod) % mod;
x = (x * x) % mod;
if (b % 2) return (x * a) % mod;
else return x;
}
ll Mul(ll a, ll b, ll mod) {
if (b == 0) return 0;
ll t = Mul(a, b / 2, mod);
t = (t + t) % mod;
if (b % 2 == 0) return t;
else return (t + a) % mod;
}
ll C(ll n, ll k, ll mod) {
if (k > n || k <0) return 0;
if(k==0)return 1;
return gt[n] * rgt[k] % mod * rgt[n - k] % mod;
}
void setup()
{ gt[0] = 1;
for (int i = 1; i <= nm; ++i) gt[i] = gt[i - 1] * i % mod;
rgt[nm] = power(gt[nm], mod - 2, mod);
for (int i = nm - 1; i >= 0; --i) {
rgt[i] = rgt[i + 1] * (i + 1) % mod;
}
}
int main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
setup();
int q;
cin>>q;
while(q--){
int n,k;
cin >>n>>k;
cout<<C(n,k,mod)%mod<<"\n";
}
}
ll nen_sf(ll x) {// nen square free
ll result = 1;
while (x > 1) {
ll p = nt[x];
while (x % (p * p) == 0) {
x /= (p * p);
}
if (x % p == 0) {
result *= p;
x /= p;
}
}
return result;
}
#include <bits/stdc++.h>//GRAPH
using namespace std;
using ll = long long;
const int maxn = 100000;
const ll INF = 1e18;
int n, m;
vector<int> a[maxn]; // Đồ thị không trọng số
vector<pair<int, ll>> adj[maxn]; // Đồ thị có trọng số
// Nhập đồ thị không trọng số
void nhap1() {
cin >> n >> m;
for (int i = 1; i <= m; i++) {
int x, y;
cin >> x >> y;
a[x].push_back(y);
a[y].push_back(x);
}
}
// BFS cho đồ thị không trọng số
void bfs(int u, vector<int> &b) {
queue<int> q;
q.push(u);
b[u] = 1;
while (!q.empty()) {
int x = q.front();
q.pop();
for (int i : a[x]) {
if (b[i] == 0) {
q.push(i);
b[i] = 1;
}
}
}
}
// DFS cho đồ thị không trọng số
void dfs(int u, vector<int> &b) {
b[u] = 1;
for (int v : a[u]) {
if (b[v] == 0) {
dfs(v, b);
}
}
}
// Nhập đồ thị có trọng số
void nhap2() {
cin >> n >> m;
for (int i = 0; i < m; i++) {
int x, y;
ll w;
cin >> x >> y >> w;
adj[x].push_back({y, w});
adj[y].push_back({x, w});
}
}
// Dijkstra cho đồ thị có trọng số
void dijkstra(int s, int t) {
vector<ll> d(maxn, INF);
vector<int> pre(maxn, -1);
priority_queue<pair<ll, int>, vector<pair<ll, int>>, greater<pair<ll, int>>> Q;
d[s] = 0;
pre[s] = s;
Q.push({0, s});
while (!Q.empty()) {
auto top = Q.top();
Q.pop();
ll kc = top.first;
int u = top.second;
if (kc > d[u]) continue;
for (auto it : adj[u]) {
int v = it.first;
ll w = it.second;
if (d[v] > d[u] + w) {
d[v] = d[u] + w;
Q.push({d[v], v});
pre[v] = u;
}
}
}
if (d[t] == INF) {
cout << -1;
return;
}
cout << d[t] << "\n";
vector<int> path;
while (1) {
path.push_back(t);
if (t == s) break;
t = pre[t];
}
reverse(path.begin(), path.end());
for (int x : path) {
cout << x << " ";
}
cout << endl;
}
// Floyd-Warshall cho đồ thị có trọng số
void floydWarshall(int dist[1005][1005], int nxt[1005][1005], int n) {
for (int k = 1; k <= n; k++) {
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n; j++) {
if (dist[i][j] > dist[i][k] + dist[k][j]) {
dist[i][j] = dist[i][k] + dist[k][j];
nxt[i][j] = nxt[i][k];
}
}
}
}
}
// Lấy đường đi ngắn nhất từ i đến j trong Floyd-Warshall
vector<int> shortestPath(int i, int j, int nxt[1005][1005]) {
//prim
vector<int> path;
while (i != j) {
path.push_back(i);
i = nxt[i][j];
}
path.push_back(j);
return path;
}
struct canh
{
int x,y,w;
};
bool used[maxn];
void prim(int u)//Prim
{
priority_queue<pair<int,int>,vector<pair<int,int>>,greater<pair<int,int>>>Q;
int d=0;
Q.push({0,u});
while(!Q.empty())
{
pair<int,int>top=Q.top();
Q.pop();
int dinh=top.second,trongso=top.first;
if(used[dinh])continue;
d+=trongso;
used[dinh]=true;
for(auto it: adj[dinh])
{
int y=it.first,w=it.second;
if(!used[y])
{
Q.push({w,y});
}
}
}
cout<<d;
}
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
return 0;
}
#include <bits/stdc++.h>//JUDGE
using namespace std;
using ll = long long;
int main() {
for(int cnter = 1; cnter <= 1000; cnter++) {
int v = system("gen.exe");
if(v != 0) {
cout << "sai o GEN.exe" << endl;
return 0;
}
v = system("A.exe");
if(v != 0) {
cout << "sai o A" << endl;
return 0;
}
v = system("B.exe");
if(v != 0) {
cout << "sai o B" << endl;
return 0;
}
v = system("fc B.out B.ans");
if (v != 0) {
cout << "Test " <<cnter<< "BRUH" << endl;
return 0;
}
cout << "Test "<<cnter<< " BU DAM" << endl;
}
return 0;
}
#include <bits/stdc++.h>//GEN
using namespace std;
using ll = long long;
mt19937_64 rnd(chrono::high_resolution_clock::now().time_since_epoch().count());
ll rand(ll l, ll r) {
return rnd() % (r - l + 1) + l;
}
int main() {
freopen("Test.inp", "w", stdout);
}
}
#include <bits/stdc++.h>//nen
using namespace std;
main()
{
int n;cin >> n;
vector < int > a(n + 1);
map < int, vector < int > > cnt;
for (int i = 1; i <= n; ++i)
{
cin >> a[i];
cnt[a[i]].push_back(i);
}
int counter = 0;
for (auto e: cnt)
{
++counter;
for (int p: e.second)
a[p] = counter;
}
for (int i = 1; i <= n; ++i)
cout << a[i] << ' ';
}
Huy hiệu
Người dùng này không có huy hiệu nào.Lịch sử rating
, #