diff --git a/digit dp.cpp b/digit dp.cpp new file mode 100644 index 0000000..8168a3d --- /dev/null +++ b/digit dp.cpp @@ -0,0 +1,87 @@ +#include +using namespace std; + +typedef long long ll; +typedef double db; +#define debug(x) cout<<#x<<" :: "< +#define vpll vector < pair < ll ,ll> > +#define pii pair < int,int > +#define pll pair < ll,ll > +#define fi first +#define se second +#define pb(x) push_back(x) +#define endl "\n" +#define mem1(x) memset(x,-1,sizeof x) +#define mem(x) memset(x,0,sizeof x) +#define mem63(x) memset(x,63,sizeof x) +ll dp[2][22][10][2][10][513]; +int MASK,K,digit[25]; + +ll fun(int tight,int idx,int prev,int type,int k,int mask){ + if(k > K){ + return 0; + } + if(idx == 20){ + if((mask&MASK) == MASK){ + return 1; + } + return 0; + } + ll &res = dp[tight][idx][prev][type][k][mask]; + + if(res != -1) return res; // ~res == non zero if res == -1 + + res = 0; + + if(!mask){ + res += fun(tight|digit[idx]>0,idx+1,0,1,0,0); + } + for(int i=1;i<=9;i++){ + if(i!= prev && (tight || (!tight && i <= digit[idx]))){ + if(prev < i != type){ + res += fun(tight|i=0;i--){ + digit[i] = x%10; + x /= 10; + } + mem1(dp); + + return fun(0,0,0,1,0,0); +} + +int main() +{ + boost1; + //boost2; + int n,m,i,j,t,x,y,w; + ll l,r; + cin>>t; + while(t--){ + cin>>m; + MASK = 0; + while(m--){ + cin>>x; + MASK = MASK | (1<<(x-1)); + } + cin>>K; + cin>>l>>r; + cout< +#include +using namespace std; + +using namespace __gnu_pbds; + + + + +typedef long long ll; +typedef double db; +#define debug(x) cout<<#x<<" :: "< +#define vpl vector < pair < ll ,ll> > +#define pi pair < int,int > +#define pl pair < ll,ll > +#define ff first +#define ss second +#define for(i,a,b) for(ll i=a;i, rb_tree_tag, tree_order_statistics_node_update> s; + +ll sum[size1]; +int main() +{ +// boost1; +// boost2; + + ll n,m,i,j,t,b,c,x,y,w,l,r,ans1,ans2; + cin>>n>>t; +// for(i,0,n){ +// cin>>sum[i]; +// } +// //sum[0] = 0; +// for(i,1,n){ +// sum[i] += sum[i-1]; +// } + + ll ans = 0,tmp,g=0; + //cout<>tmp; + s.insert({-g,i}); + g += tmp; + y = s.order_of_key({t-g,0}); + + debug(y); + ans += y; + } + cout< +using namespace std; + +typedef long long ll; +typedef double db; +#define debug(x) cout<<#x<<" :: "< +#define vpll vector < pair < ll ,ll> > +#define pii pair < ll,int > +#define pll pair < ll,ll > +#define fi first +#define se second +#define pb(x) push_back(x) +#define endl "\n" +#define mem1(x) memset(x,-1,sizeof x) +#define mem(x) memset(x,0,sizeof x) +#define mem63(x) memset(x,63,sizeof x) + +int a[size1]; + +int main() +{ + boost1; + //boost2; + ll n,m,i,j,t,x,q,y,w,k=1; + vector v; + cin>>t; + while(t--){ + cin>>n>>m>>q; + // mem(a); + map mp; + for(i=0;i>x; + a[x] = 1; + v.push_back(x); + } + for(i=0;i>x; + mp[x]++; + } + ll ans = 0; + for(auto x : mp){ + for(i=x.first;i <= n;i += x.first){ + if(a[i]){ + continue; + } + ans += x.second; + } + } + cout<<"Case #"< +using namespace std; + +typedef long long ll; +typedef double db; +#define debug(x) cout<<#x<<" :: "< +#define vpll vector < pair < ll ,ll> > +#define pii pair < int,int > +#define pll pair < ll,ll > +#define fi first +#define se second +#define pb(x) push_back(x) +#define endl "\n" +#define mem1(x) memset(x,-1,sizeof x) +#define mem(x) memset(x,0,sizeof x) +#define mem63(x) memset(x,63,sizeof x) + +int dp[size1][size1]; + +int a[size1]; +int main() +{ +// boost1; +// boost2; + string str,pat; + int n,m,i,j,t,x,y,w,o; + cin>>t; + + debug(t); + while(t--){ + //cin>>str; + cin>>pat; + cout<0){ + i = a[i-1]; + } + } + } + for(i=0;i +using namespace std; + +typedef long long ll; +typedef double db; +#define debug(x) cout<<#x<<" :: "< +#define vpll vector < pair < ll ,ll> > +#define pii pair < int,int > +#define pll pair < ll,ll > +#define fi first +#define se second +#define pb(x) push_back(x) +#define endl "\n" +#define mem1(x) memset(x,-1,sizeof x) +#define mem(x) memset(x,0,sizeof x) +#define mem63(x) memset(x,63,sizeof x) + +int dp[size1][size1]; + +int a[size1]; +int main() +{ +// boost1; +// boost2; + string str,pat; + int n,m,i,j,t,x,y,w,o; + cin>>t; + + //debug(t); + while(t--){ + cin>>str; + cin>>pat; + vector v; + //cout<0){ + i = a[i-1]; + }else{ + a[j] = 0; + j++; + } + } + } + + j = 0; + i = 0; + while(i