• LCOJ
  • Trang chủ
  • 🧩 Problems
  • 📤 Submissions
  • 👥 Users
    >
    • 🏛️ Organizations
  • 🏆 Contests
    >
    • ⌛ Trắc nghiệm
  • 📚 Resources
    >
    • 🐍 Học Python
    • 💵 Tài chính cá nhân
    • 📝 Blog
  • ℹ️ About
    >
    • 📝 LCOJ docs
    • 🟢 Status
    • 💡 Mẹo
    • 📘 FAQ
    • Theme
    • Ngôn ngữ VI EN
Đăng nhập  hoặc  Đăng ký

Blog - Trang 1

  • Thông tin
  • Thống kê
  • Blog

-2

Tìm kiếm nhị phân

Pgb2012012 đã đăng vào 3, Tháng 1, 2026, 4:03

Chuyên đề chặt nhị phân Bài 1:

include<bits></bits>

using namespace std; int a[100000],q,n; int chatmax(int d){ int l=1,r=n,ans=0; while (l<=r){ int mid=(l+r)/2; if (a[mid]>d) r=mid-1; else l=mid+1,ans=mid; } return(ans); } int chatmin(int d){ int l=1,r=n,ans=0; while (l<=r){ int mid=(l+r)/2; if (a[mid]>=d) r=mid-1,ans=mid; else l=mid+1; } return(ans); } int main(){ freopen("bustatq.inp","r",stdin); freopen("bustatq.out","w",stdout); cin>>n>>q; for (int i=1;i<=n;i++) cin>>a[i]; for (int i=1;i<=q;i++){ int l,r; cin>>l>>r; if (l>a[n]) cout<<"0"<<endl else cout b>

include<bits></bits>

define ll long long int

using namespace std; ll n,a[1000000],kt[1000000],f[1000000],q; ll chatmin(ll x){ ll l=1,r=n,ans=0; while (l<=r){ int mid=(l+r)/2; if (a[mid]>=x) r=mid-1,ans=mid; else if (a[mid]<x l="mid+1;" return ll chatmax x while int mid="(l+r)/2;" if r="mid-1;" else main unordered_map> mp; cin>>n>>q; for (int i=1;i<=n;i++){ cin>>a[i];mp[a[i]]++; } sort(a+1,a+n+1); if (mp[1]>0) kt[1]=1; ll j=1; for (int i=1;i<=34;i++) { j=2; if (mp[j]>0) kt[j]=1; } j=1; for (int i=1;i<=27;i++) { j=3; if (mp[j]>0) kt[j]=1; } j=1; for (int i=1;i<=25;i++) { j*=5; if (mp[j]>0) kt[j]=1; } f[0]=0;a[0]=0; for (int i=1;i<=n;i++){ f[i]=f[i-1]; if (kt[a[i]]==1) f[i]++; } for (int i=1;i<=q;i++){ ll z,x; cin>>z>>x; if (z>a[n]) cout<<"0"<<endl else int k="chatmin(z);" k1="chatmax(x);" cout b>

include<bits></bits>

using namespace std; int a[100000],b[100000],c[100000],n; int chatmax(int d){ int l=1,r=n,ans=0; while (l<=r){ int mid=(l+r)/2; if (a[mid]>d) r=mid-1; else l=mid+1; if (a[mid]==d) ans=mid; } return(ans); } int chatmin(int d){ int l=1,r=n,ans=0; while (l<=r){ int mid=(l+r)/2; if (a[mid]>=d) r=mid-1; else l=mid+1; if (a[mid]==d) ans=mid; } return(ans); } int main(){ cin>>n; for (int i=1;i<=n;i++) cin>>a[i],a[i]=a[i]a[i]; for (int i=1;i<=n;i++) cin>>b[i],b[i]=b[i]b[i]; for (int i=1;i<=n;i++) cin>>c[i],c[i]=c[i]*c[i]; sort(a+1,a+n+1);int res=0; for (int i=1;i<=n;i++){ for (int j=1;j<=n;j++){ int k=chatmax(b[i]+c[j]); int k1=chatmin(b[i]+c[j]); if (k1>0) res=res+k1-k+1; int z=chatmax(abs(b[i]-c[j])); int z1=chatmin(abs(b[i]-c[j])); if (z1>0) res=res+z1-z+1; } } cout<<res b>

include<bits></bits>

using namespace std; long long check(long long k){ long long a=k/3; long long b=k/5; long long c=k/15; return(k-(a+b-c)); } int main(){ freopen("COUNTGAM.inp","r",stdin); freopen("COUNTGAM.out","w",stdout); long long n; cin>>n; long long ans=0; long long l=1,r=1e14; while (l<r long mid="(l+r)/2;" if l="mid+1;" r="mid,ans=mid;" cout> </r>

</res>

</endl></x>

</endl>

Pgb2012012
o3, Tháng 1, 2026, 4:03 0

dựa trên VNOJ | Github | Facebook