update
This commit is contained in:
parent
d13ae78565
commit
18e35e91d7
@ -4,7 +4,7 @@ set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
|
||||
add_compile_options(-Wall)
|
||||
include_directories(${CMAKE_CURRENT_LIST_DIR}/include)
|
||||
|
||||
set(CMAKE_CXX_STANDARD 20)
|
||||
set(CMAKE_CXX_STANDARD 17)
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
set(CMAKE_CXX_EXTENSIONS OFF)
|
||||
|
||||
|
29
src/2/P1223.cpp
Normal file
29
src/2/P1223.cpp
Normal file
@ -0,0 +1,29 @@
|
||||
#include <algorithm>
|
||||
#include <cstdint>
|
||||
#include <cstdlib>
|
||||
#include <iomanip>
|
||||
#include <ios>
|
||||
#include <iostream>
|
||||
#include <ostream>
|
||||
#include <utility>
|
||||
#include <vector>
|
||||
|
||||
|
||||
int main(){
|
||||
using ll = int64_t;
|
||||
ll n,nowWait=0,sumWait=0;
|
||||
std::cin>>n;
|
||||
std::vector<std::pair<ll, ll>> a(n+1);
|
||||
for(ll i=1;i<=n;i++){
|
||||
std::cin>>a[i].first;
|
||||
a[i].second=i;
|
||||
}
|
||||
std::sort(a.begin()+1,a.end());
|
||||
for(ll i=1;i<=n;i++){
|
||||
sumWait+=nowWait;
|
||||
std::cout<<a[i].second<<" ";
|
||||
nowWait+=a[i].first;
|
||||
}
|
||||
std::cout<<std::fixed<<std::setprecision(2)<<'\n'<<(double(sumWait)/double(n))<<'\n'<<std::flush;
|
||||
quick_exit(0);
|
||||
}
|
38
src/2/P1375.cpp
Normal file
38
src/2/P1375.cpp
Normal file
@ -0,0 +1,38 @@
|
||||
#include <cstdint>
|
||||
#include <iostream>
|
||||
|
||||
using ll = int64_t;
|
||||
|
||||
constexpr ll p=1e9+7;
|
||||
const ll n=[]()->ll{ll n;std::cin>>n;return n;}();
|
||||
|
||||
ll qpow(ll b,ll e){
|
||||
ll r{1};
|
||||
while(e){
|
||||
if(e&1)r=r*b%p;
|
||||
b=b*b%p;
|
||||
e/=2;
|
||||
}
|
||||
return r;
|
||||
}
|
||||
|
||||
ll inv(ll n){
|
||||
return qpow(n, p-2);
|
||||
}
|
||||
|
||||
ll mfact(const ll&b){
|
||||
ll r{1};
|
||||
for(ll i{1};i<=b;i++){
|
||||
r=r*i%p;
|
||||
}
|
||||
return r;
|
||||
}
|
||||
|
||||
ll C(const ll &n,const ll &m){
|
||||
return mfact(n)*inv(mfact(m))%p*inv(mfact(n-m))%p;
|
||||
}
|
||||
|
||||
int main(){
|
||||
const ll ans = C(2*n,n)-C(2*n,n-1);
|
||||
std::cout<<(ans%p+p)%p<<'\n';
|
||||
}
|
@ -1,20 +1,42 @@
|
||||
#include <algorithm>
|
||||
#include <cstdint>
|
||||
#include <iostream>
|
||||
#include <tuple>
|
||||
|
||||
using ll = int64_t;
|
||||
|
||||
ll T;
|
||||
|
||||
ll exgcd(ll a,ll b,ll&x,ll&y){
|
||||
std::tuple<ll,ll,ll> exgcd(ll const&a,ll const& b){
|
||||
if(b==0){
|
||||
x=1,y=0;
|
||||
return a;
|
||||
return std::make_tuple(a,1,0);
|
||||
}
|
||||
ll d = exgcd(b,a%b,x,y);
|
||||
ll tempy = y;
|
||||
auto [d,x,y] = exgcd(b, a%b);
|
||||
ll oldy{y};
|
||||
y=x-a/b*y;
|
||||
x=tempy;
|
||||
return d;
|
||||
x=oldy;
|
||||
return std::make_tuple(d,x,y);
|
||||
}
|
||||
|
||||
ll divup(ll const&a,ll const&b){
|
||||
return (a+(b>0?b-1:b+1))/b;
|
||||
}
|
||||
|
||||
int main(){
|
||||
|
||||
std::cin>>T;
|
||||
while(T--){
|
||||
const auto [a,b,c] {[]()->std::tuple<ll,ll,ll>{ll a,b,c;std::cin>>a>>b>>c;return std::make_tuple(a,b,c);}()};
|
||||
const auto [d,x1,y1] {exgcd(a,b)};
|
||||
if(c%d!=0){
|
||||
std::cout<<"-1\n";
|
||||
continue;
|
||||
}
|
||||
const ll kmin{divup(-x1*d,b)},kmax{y1*d/a};
|
||||
const ll knum{std::max(ll(0),kmax-kmin+1)};
|
||||
if(knum==0){
|
||||
std::cout<<(x1+kmax*b/d)<<' '<<(y1-kmin*a/d)<<'\n';
|
||||
}else{
|
||||
std::cout<<(x1+kmin*b/d)<<' '<<(y1-kmax*a/d)<<(x1+kmax*b/d)<<' '<<(y1-kmin*a/d)<<'\n';
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user