Từ
Giới thiệu
include <bits/stdc++.h>
using namespace std;
bool ktra(long long x) { if (x < 2) return false; for (long long i = 2; i * i <= x; i++) { if (x % i == 0) return false; } return true; } void taocacso(const string &num, set<long long> &kq) { int len = num.size(); for (int diem = 1; diem < (1 << len); diem++) { string ht = “”; for (int i = 0; i < len; i++) { if (diem & (1 << i)) { ht += num[i]; } } if (!ht.empty() && ht[0] != ‘0’) { kq.insert(stoll(ht)); } } }
int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); // freopen(“BAI1.INP”, “r”, stdin); // freopen(“BAI1.OUT”, “w”, stdout); string n; cin >> n;
set<long long> cacso;
taocacso(n, cacso);
long long sntmax = -1;
for (long long x : cacso) {
if (ktra(x)) {
sntmax = max(sntmax, x);
}
}
cout << sntmax << endl;
return 0;
} ham tim cac so tao nen so
include <bits/stdc++.h>
using namespace std;
long long tongchinhphuong(long long n) {
return (n * (n + 1) % 2022 * (2 * n + 1) % 2022 / 6) % 2022;
}
int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); long long n; cin >> cout << tongchinhphuong(n) << endl; return 0; } tong cac so chinh phuong
Bai 1: lấy số lượng số chia hết cho 6 từ 1 đến m trừ đi sl sô chia hết cho 6 từ 1 đến n
include <bits/stdc++.h>
using namespace std;
signed main() { ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); long long t; cin >> t; while(t–) { long long n,m; cin >> n >> m; cout << m/6 - (n-1)/6 << “\n”; } } Bai 2: sliding window: cộng vào số và khi vượt giới hạn thì rút gọn left
include <bits/stdc++.h>
using namespace std;
signed main() { ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); string s; long long k; cin >> s >> k; vector<long long> ls(26, 0); long long slkt = 0, kq = 0; long long l = 0; for (long long r = 0; r < (long long)s.size(); r++) { long long c = s[r] - ‘a’; if (ls[c] == 0) slkt++; ls[c]++; while (slkt > k) { long long cl = s[l] - ‘a’; ls[cl]–; if (ls[cl] == 0) slkt–; l++; } kq = max(kq, r - l + 1); } cout << kq; } Bài 3: Sáng ước + prefix sum
include <bits/stdc++.h>
using namespace std; long long demuoc[1000005]; void sanguoc() { for (long long i = 1; i <= 1000000; i++) { for (long long j = i; j <= 1000000; j += i) { demuoc[j]++; } } }
int main() { ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); sanguoc(); long long n; cin >> n; vector<long long> ls(n); for (long long i = 0; i < n; i++) cin >> ls[i]; vector<long long> prf(n); prf[0] = ls[0]; for (long long i = 1; i < n; i++) prf[i] = prf[i - 1] + ls[i]; long long dem = 0; for (long long i = 0; i < n; i++) { for (long long j = i; j < n; j++) { long long tong = prf[j] - (i > 0 ? prf[i - 1] : 0); if (tong % demuoc[ls[j]] == 0) dem++; } } cout << dem; } Bài 4: Hàm tính diện tích với đáy : với mỗi cột i, ta so sánh ls[i] với top của stack. Nếu ls[i] nhỏ hơn hoặc bằng cột trên top thì nghĩa là không thể mở rộng thêm sang phải nữa Lúc đó, ta tính diện tích hình chữ nhật với chiều cao là ls[top] và chiều rộng = (i - l - 1) với l là vtri của cột trước đó sau đó ta cập nhật diện tích lớn nhất còn ở hàm int main thì ta sẽ liên tục lưu chiều cao cột j tính đến hàng htai sau mỗi hàng sẽ gọi hàm tính diện tích lớn nhất để tính diện tích hình chữ nhật lớn nhất có đáy nằm ở hàng đấy
include <bits/stdc++.h>
using namespace std;
long long timdtlonnhat(vector<long long> &h) { long long n = h.size(); stack<long long> st; long long mxdt = 0; for (long long i = 0; i <= n; i++) { long long cc = (i == n ? 0 : h[i]); while (!st.empty() && h[st.top()] >= cc) { long long top = st.top(); st.pop(); long long left = (st.empty() ? -1 : st.top()); long long dt = 1LL * h[top] * (i - left - 1); mxdt = max(mxdt, dt); } st.push(i); } return mxdt; }
int main() { ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); long long m, n; cin >> m >> n; vector<long long> ls(n, 0); long long kq = 0; for (long long i = 0; i < m; i++) { for (long long j = 0; j < n; j++) { long long x; cin >> x; if (x == 1) ls[j] += 1; else ls[j] = 0; } kq = max(kq, timdtlonnhat(ls)); } cout << kq; }
vector<long long> uoc(1000006,0),uocnt(1000006,0),nt(1000006,1); void sanguoc() { for(long long i=1; i<=1000005; i++) { for(long long j=i; j<=1000005; j+=i) { uoc[j]++; } } } void sanguocnt() { for(long long i=1; i<=1000005; i++) { for(long long j=i; j<=1000005; j+=i) { if(nt[i]) { uocnt[j]++; } } } } void sang() { nt[0]=nt[1]=0; for(long long i=2; ii<=1000005; i++) { if(nt[i]) { for(long long j=ii; j<=1000005; j+=i) { nt[j]=0; } } } }
include <bits/stdc++.h>
using namespace std; long long a[1000][1000],b[1000][1000],c[1000],dem=0,n,d[1000005]; void taobang(){ b[1][1]=a[1][1]; for(long long i=2; i<=n; i++){ for(long long j=1; j<=i;j++){ b[i][j]=a[i][j]+max(b[i-1][j-1],b[i-1][j]); } } }
void truyhoi(){ long long maxb=b[n][1]; long long vt=1; for(long long i=2; i<=n; i++){ if(maxb<b[n][i]){ maxb=b[n][i]; vt=i; } } cout << maxb << endl; }
int main(){ ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); cin >> n; for(long long i=1; i<=n; i++){ for(long long j=1; j<=i;j++){ cin>>a[i][j]; } } taobang(); truyhoi(); }
long long tinh(string s, string t) { long long m=s.size(), n=t.size(),nmax=LLONG_MIN; s=” ” + s; t=” ” + t; vector<vector\<long long>> dp(m + 1, vector<long long>(n + 1, 0)); for(long long i=1; i<=m; i++) { for(long long j=1; j<=n; j++) { dp[i][j] = 0; if(s[i] == t[j]) dp[i][j]=dp[i-1][j-1] + 1; } } for(long long i=1; i<=m; i++) { for(long long j=1; j<=n; j++) { nmax=max(nmax,dp[i][j]); } } return nmax; }
dp tim xau con chung dai nhat lien tiep
include <bits/stdc++.h>
using namespace std; long long a,n; const long long m=1000000007; long long mu(long long a, long long b){ if (b==0) return 1; long long kq=mu(a,b/2) % m; if (b%2==1) return a((kqkq)%m)%m; else return (kq*kq)%m; }
int main() { ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); cin >> a >> n; cout << mu(a,n); } https://onlinegdb.com/p4_gH3rJX
cout << prf[(long long)floor(sqrtl(sqrtl((long double)(b))))] - prf[(long long)ceil(sqrtl(sqrtl((long double)(a))))-1] << “\n”;