[数论系列一]C Looooops,跳跳棋,The Luckiest number,CF906D Power Tower,Minimal Power of Prime,仪仗队,LCMSUM

文章目录

  • C Looooops
    • description
    • solution
    • code
  • 跳跳棋
    • description
    • solution
    • code
  • The Luckiest number
    • description
    • solution
    • code
  • CF906D Power Tower
    • description
    • solution
    • code
  • Minimal Power of Prime
    • description
    • solution
    • code
  • [SDOI2008]仪仗队
    • description
    • solution
    • code
  • LCMSUM
    • description
    • solution
    • code

在这里插入图片描述

下文涉及到的所有数论知识证明传送门1

下文涉及到的所有数论知识证明传送门2

C Looooops

description

solution

将题意转化为数学式子表示A+Cx≡B(mod2k)A+Cx\equiv B\pmod {2^k}A+CxB(mod2k),最后就是求最小的xxx

其实将取模操作去掉就是非常模板的扩展欧几里得, C⋅x−y⋅2k=B−AC·x-y·2^k=B-ACxy2k=BA

先求出一组特解,然后求出最小正整数xxx(最小解法请传送至证明章)

code

#include <cmath>
#include <cstdio>
#include <iostream>
using namespace std;
#define int long longint exgcd( int a, int b, int &x, int &y ) {if( ! b ) {x = 1, y = 0;return a;}else {int d = exgcd( b, a % b, y, x );y -= ( a / b ) * x;return d;}
}signed main() {int A, B, C, k;while( scanf( "%lld %lld %lld %lld", &A, &B, &C, &k ) ) {if( ! A && ! B && ! C && ! k ) break;int a = C, b = 1ll << k, c = B - A, x, y;int d = exgcd( a, b, x, y );if( c % d ) {printf( "FOREVER\n" );continue;}x = ( x * ( c / d ) % ( b / d ) + ( b / d ) ) % ( b / d );printf( "%lld\n", x );}return 0;
}

跳跳棋

description

solution

此题的关键在于,一次只允许跳过1颗棋子

也就是对于中间的棋子而言,只能是离之最近的棋子才有跳的权利

a,b,c→\rightarrowb,2b-a,c/a,2b-c,b

如果将(a,b,c)(a,b,c)(a,b,c)看成一个点,那么一个点只会有两种后继

建二叉树,奉行全都相对中间棋子进行跳跃,缩小三个球的距离直到相等,把这类点定义为树的根

判断无解,只需要看初始局面和结束局面是否按照以上规则操作后隶属于同一节点

跳跃一次,就是在树上爬一层,不能一步一步爬,而是一次性跳成距离更短的点,然后换另外一边跳

再这过程中统计局面跳了多少步,也就是对应的深度

将初始局面和结束局面先跳到同一层,然后再二分跳的深度找lcalcalca(两局面相同)

code

#include <cstdio>
#include <iostream>
#include <algorithm>
using namespace std;
#define int long long
#define inf 1e18
struct node {int pos[5];bool operator != ( const node &t ) const {for( int i = 1;i <= 3;i ++ )if( pos[i] != t.pos[i] ) return 1;return 0;}
}S, E;
int dep_S, dep_E, dep;
int Sp[5], Ep[5];node solve( int MS[], int len ) {node ans;for( int i = 1;i <= 3;i ++ )ans.pos[i] = MS[i];int d1 = MS[2] - MS[1], d2 = MS[3] - MS[2];if( d1 == d2 ) return ans;else if( d1 < d2 ) {int k = min( len, ( d2 - 1 ) / d1 );len -= k, dep += k;ans.pos[1] += k * d1;ans.pos[2] += k * d1;}else {int k = min( len, ( d1 - 1 ) / d2 );len -= k, dep += k;ans.pos[2] -= k * d2;ans.pos[3] -= k * d2;}if( len ) return solve( ans.pos, len );else return ans;
}signed main() {for( int i = 1;i <= 3;i ++ )scanf( "%lld", &Sp[i] );for( int i = 1;i <= 3;i ++ )scanf( "%lld", &Ep[i] );sort( Sp + 1, Sp + 4 );sort( Ep + 1, Ep + 4 );S = solve( Sp, inf );dep_S = dep;dep = 0;E = solve( Ep, inf );dep_E = dep;dep = 0;if( S != E ) return ! printf( "NO\n" );else printf( "YES\n" );if( dep_S > dep_E ) {swap( dep_S, dep_E );for( int i = 1;i <= 3;i ++ )swap( Sp[i], Ep[i] );}int ans = dep_E - dep_S;if( ans ) {E = solve( Ep, ans );for( int i = 1;i <= 3;i ++ )Ep[i] = E.pos[i];}int l = 0, r = dep_S;while( l < r ) {int mid = ( l + r ) >> 1;if( solve( Sp, mid ) != solve( Ep, mid ) ) l = mid + 1;else r = mid;}printf( "%lld\n", ans + l * 2 );return 0;
}

The Luckiest number

description

solution

L∣8∗10n−19⇔9∗Lgcd⁡(8,L)∣(10n−1)∗8gcd⁡(8,L)L\bigg|8*\frac{10^n-1}{9}\Leftrightarrow \frac{9*L}{\gcd(8,L)}\bigg|\frac{(10n-1)*8}{\gcd(8,L)}L8910n1gcd(8,L)9Lgcd(8,L)(10n1)8

∵gcd⁡(8,9)=1\because \gcd(8,9)=1gcd(8,9)=1

∴10n≡1(mod9Lgcd⁡(8,L))\therefore 10n\equiv 1\pmod{\frac{9L}{\gcd(8,L)}}10n1(modgcd(8,L)9L)

无解,即为gcd⁡(10,9Lgcd⁡(8,L))=1\gcd(10,\frac{9L}{\gcd(8,L)})=1gcd(10,gcd(8,L)9L)=1

否则转化为ax≡1(modm)a^x\equiv 1\pmod max1(modm),求最小的xxx

根据阶的公式有x∣ϕ(m)x\bigg|\phi(m)xϕ(m)

直接枚举计算

code

#include <cstdio>
#include <cstring>
#include <iostream>
using namespace std;
#define int long longint gcd( int x, int y ) {if( ! y ) return x;else return gcd( y, x % y );
}int calc( int x ) {int ans = x;for( int i = 2;i * i <= x;i ++ )if( x % i == 0 ) {ans = ans / i * ( i - 1 );while( x % i == 0 ) x /= i;}if( x != 1 ) ans = ans / x * ( x - 1 );return ans;
}int qkmul( int x, int y, int mod ) {int ans = 0;while( y ) {if( y & 1 ) ans = ( ans + x ) % mod;x = ( x + x ) % mod;y >>= 1;}return ans;
}int qkpow( int x, int y, int mod ) {int ans = 1;while( y ) {if( y & 1 ) ans = qkmul( ans, x, mod );x = qkmul( x, x, mod );y >>= 1;}return ans;
}signed main() {int L;for( int T = 1;;T ++ ) {scanf( "%lld", &L );if( ! L ) return 0;L *= 9;for( int i = 1;i <= 3;i ++ )if( L % 2 == 0 ) L >>= 1;else break;if( gcd( 10, L ) != 1 ) {printf( "Case %lld: 0\n", T );continue;}int phi = calc( L ), ans = L;for( int i = 1;i * i <= phi;i ++ )if( phi % i ) continue;else {if( qkpow( 10, i, L ) == 1 ) {ans = i;break;}else if( qkpow( 10, phi / i, L ) == 1 )ans = min( ans, phi / i );}printf( "Case %lld: %lld\n", T, ans );}return 0;
}

CF906D Power Tower

description

solution

扩展欧拉定理的板题
xr≡{xrr<mxr%ϕ(m)(x,m)=1xr%ϕ(m)+ϕ(m)(x,m)>1x^r\equiv \begin{cases} x^r&&r<m\\ x^{r\%\phi(m)}&&(x,m)=1\\ x^{r\%\phi(m)+\phi(m)}&&(x,m)>1 \end{cases} xrxrxr%ϕ(m)xr%ϕ(m)+ϕ(m)r<m(x,m)=1(x,m)>1
迭代计算指数,当前层modmodmodϕ(mod)\phi(mod)ϕ(mod)就是下一层其指数的mod′mod'mod

code

#include <iostream> 
#include <cstdio>
using namespace std;#if(__cplusplus == 201103L)
#include <unordered_map>
#else
#include <tr1/unordered_map>
namespace std
{using std::tr1::unordered_map;
}
#endif#define int long long
#define maxn 100005
unordered_map < int, int > mp;
int l, r;
int w[maxn];int E( int x, int mod ) {return x < mod ? x : x % mod + mod;
}int qkpow( int x, int y, int mod ) {int ans = 1;while( y ) {if( y & 1 ) ans = E( ans * x, mod );x = E( x * x, mod );y >>= 1;}return ans;
}int phi( int n ) {if( mp.count( n ) ) return mp[n];int ans = n, x = n;for( int i = 2;i * i <= x;i ++ )if( x % i == 0 ) {ans = ans / i * ( i - 1 );while( x % i == 0 ) x /= i;}if( x != 1 ) ans = ans / x * ( x - 1 );return mp[n] = ans;
}int solve( int d, int pos, int mod ) {if( pos == r + 1 || mod == 1 ) return E( d, mod );int p = phi( mod );int e = solve( w[pos], pos + 1, p );return qkpow( d, E( e, p ), mod );
}signed main() {int n, mod, Q;scanf( "%lld %lld", &n, &mod );for( int i = 1;i <= n;i ++ )scanf( "%lld", &w[i] );scanf( "%lld", &Q );while( Q -- ) {scanf( "%lld %lld", &l, &r );printf( "%lld\n", solve( w[l], l + 1, mod ) % mod );}
}

Minimal Power of Prime

description

solution

一道数据范围极大的整数标准唯一分解板题

采用试除法

用不超过n15n^\frac{1}{5}n51次方的质数去除nnn,那么nnn最多剩下四个质因数

条件语句大力讨论,nnn是不是二次幂/三次幂/四次幂,都不是那就一定属于至少一个是一次幂的情况

code

#include <iostream>
#include <cstdio>
#include <cmath>
using namespace std;
#define maxn 1000000
#define int long long
int T, n, cnt;
bool vis[maxn];
int prime[maxn];void sieve() {for( int i = 2;i < maxn;i ++ ) {if( ! vis[i] ) vis[i] = 1, prime[++ cnt] = i;for( int j = 1;j <= cnt && i * prime[j] < maxn;j ++ ) {vis[i * prime[j]] = 1;if( i % prime[j] == 0 ) break;}}
}int calc( int x, int t ) {int ans = 1;for( int i = 1;i <= t;i ++ )ans *= x;return ans;
}signed main() {sieve();scanf( "%lld", &T );while( T -- ) {scanf( "%lld", &n );int m = powl( n, 1.0 / 5 ), ans = n;for( int i = 1;i <= cnt;i ++ )if( prime[i] > m ) break;else if( n % prime[i] == 0 ) {int tot = 0;while( n % prime[i] == 0 )tot ++, n /= prime[i];ans = min( ans, tot );}int x = powl( n, 1.0 / 4 );int y = powl( n, 1.0 / 3 );int z = powl( n, 1.0 / 2 );if( n == 1 ) goto print;if( calc( x, 4 ) == n || calc( x - 1, 4 ) == n || calc( x + 1, 4 ) == n )ans = min( ans, 4ll );else if( calc( y, 3 ) == n || calc( y - 1, 3 ) == n || calc( y + 1, 3 ) == n )ans = min( ans, 3ll );else if( calc( z, 2 ) == n || calc( z - 1, 2 ) == n || calc( z + 1, 2 ) == n )ans = min( ans, 2ll );elseans = min( ans, 1ll );print : printf( "%lld\n", ans );}return 0;
}

[SDOI2008]仪仗队

description

solution

定义每个点的坐标为(x−1,y−1)(x-1,y-1)(x1,y1),那么CCC君就在(0,0)(0,0)(0,0)位置上

考虑能被看到的小朋友的点坐标满足的性质

根据直线可以由向量刻画,设(x,y)(x,y)(x,y)小朋友能被看到,那么这条直线上的λ>1,(λx,λy)\lambda>1,(\lambda x,\lambda y)λ>1,(λx,λy)都会被挡住

gcd⁡(λx,λy)=λ(x,y)≥λ>1\gcd(\lambda x,\lambda y)=\lambda(x,y)\ge \lambda>1gcd(λx,λy)=λ(x,y)λ>1

也就是说,如果gcd⁡(x,y)>1\gcd(x,y)>1gcd(x,y)>1该小朋友会被挡住

如果gcd⁡(x,y)=1\gcd(x,y)=1gcd(x,y)=1的小朋友会被挡住,那么一定存在(xμ,yμ),μ>1(\frac{x}{\mu},\frac{y}{\mu}),\mu>1(μx,μy),μ>1的小朋友存在,显然不存在这样的点

综上,当且仅当小朋友的横纵坐标互质的时候,才会被看见

转述成数学语言,即:ans=∑i=0n−1∑j=0n−1[gcd⁡(i,j)=1]ans=\sum_{i=0}^{n-1}\sum_{j=0}^{n-1}\Big[\gcd(i,j)=1\Big]ans=i=0n1j=0n1[gcd(i,j)=1]

⇔∑i=0n−1∑j=0i−1[gcd⁡(i,j)=1]+∑i=0n−1∑j=ii[gcd⁡(i,j)=1]+∑i=0n−1∑j=i+1n−1[gcd⁡(i,j)=1]\Leftrightarrow \sum_{i=0}^{n-1}\sum_{j=0}^{i-1}\Big[\gcd(i,j)=1\Big]+\sum_{i=0}^{n-1}\sum_{j=i}^i\Big[\gcd(i,j)=1\Big]+\sum_{i=0}^{n-1}\sum_{j=i+1}^{n-1}\Big[\gcd(i,j)=1\Big]i=0n1j=0i1[gcd(i,j)=1]+i=0n1j=ii[gcd(i,j)=1]+i=0n1j=i+1n1[gcd(i,j)=1]

∑i=0n−1∑j=ii[gcd⁡(i,j)=1]\sum_{i=0}^{n-1}\sum_{j=i}^i\Big[\gcd(i,j)=1\Big]i=0n1j=ii[gcd(i,j)=1]代表y=xy=xy=x直线,显然只能看到一个小朋友,然后就可以删去了

n×nn\times nn×n的图,CCC君在原点处,隐藏的性质是看到的小朋友关于y=xy=xy=x直线对称

式子继续化为2(∑i=0n−1∑j=0i−1[gcd⁡(i,j)=1])2\bigg(\sum_{i=0}^{n-1}\sum_{j=0}^{i-1}\Big[\gcd(i,j)=1\Big]\bigg)2(i=0n1j=0i1[gcd(i,j)=1])

惊奇的发现内层循环的取值范围以及要求完全符合欧拉函数φ\varphiφ的定义

于是乎,最终答案成为1+2∑i=0n−1φ(i)1+2\sum_{i=0}^{n-1}\varphi(i)1+2i=0n1φ(i)

code

#include <cstdio>
#define maxn 40005
int prime[maxn], phi[maxn];
bool vis[maxn];
int n;void sieve() {phi[1] = 1; int cnt = 0;for( int i = 2;i <= n;i ++ ) {if( ! vis[i] ) prime[++ cnt] = i, phi[i] = i - 1;for( int j = 1;j <= cnt && i * prime[j] <= n;j ++ ) {vis[i * prime[j]] = 1;if( i % prime[j] == 0 ) {phi[i * prime[j]] = phi[i] * prime[j];break;}elsephi[i * prime[j]] = phi[i] * ( prime[j] - 1 );}}
}int main() {scanf( "%d", &n );if( n == 1 ) return ! printf( "0\n" );sieve();int ans = 0;for( int i = 0;i < n;i ++ )ans += ( phi[i] << 1 );printf( "%d\n", ans + 1 );
}

LCMSUM

description

solution

∑i=1nlcm⁡(i,j)⇔∑i=1ni×ngcd⁡(i,n)\sum_{i=1}^n \operatorname{lcm}(i,j)\Leftrightarrow \sum_{i=1}^n\frac{i\times n}{\operatorname{gcd}(i,n)}i=1nlcm(i,j)i=1ngcd(i,n)i×n

∵gcd⁡(i,n)=gcd⁡(n−i,n)\because \gcd(i,n)=\gcd(n-i,n)gcd(i,n)=gcd(ni,n),两两gcd⁡\gcdgcd相同的合并i+(n−i)=ni+(n-i)=ni+(ni)=n

12(∑i=1n−1i∗ngcd⁡(i,n)+∑i=n−11i∗ngcd⁡(i,n))+lcm⁡(n,n)=n+12∑i=1n−1n2gcd⁡(i,j)\frac{1}{2}\Big(\sum_{i=1}^{n-1}\frac{i*n}{\gcd(i,n)}+\sum_{i=n-1}^1\frac{i*n}{\gcd(i,n)}\Big)+\operatorname{lcm}(n,n)=n+\frac{1}{2}\sum_{i=1}^{n-1}\frac{n^2}{\gcd(i,j)}21(i=1n1gcd(i,n)in+i=n11gcd(i,n)in)+lcm(n,n)=n+21i=1n1gcd(i,j)n2

gcd⁡(i,n)=d\gcd(i,n)=dgcd(i,n)=diii的个数有ϕ(nd)\phi(\frac{n}{d})ϕ(dn)(gcd(id,nd)=1\Big(gcd(\frac{i}{d},\frac{n}{d})=1(gcd(di,dn)=1的个数有ϕ(nd))\phi(\frac{n}{d})\Big)ϕ(dn))

⇒n+12∑i=1n−1n2gcd⁡(i,j)=n+12∑d∣nn2⋅ϕ(nd)d=n+12∑d∣nn2⋅ϕ(d)nd\Rightarrow n+\frac{1}{2}\sum_{i=1}^{n-1}\frac{n^2}{\gcd(i,j)}=n+\frac{1}{2}\sum_{d\big|n}\frac{n^2·\phi(\frac{n}{d})}{d}=n+\frac{1}{2}\sum_{d\big|n}n^2·\frac{\phi(d)}{\frac{n}{d}}n+21i=1n1gcd(i,j)n2=n+21dndn2ϕ(dn)=n+21dnn2dnϕ(d)

=n+n∑d∣nd⋅ϕ(d)2=n+n\sum_{d\big|n}\frac{d·\phi(d)}{2}=n+ndn2dϕ(d)

线性筛预处理

code

#include <cstdio>
#define maxn 1000000
#define int long long
int prime[maxn + 5], phi[maxn + 5], sum[maxn + 5];
bool vis[maxn + 5];void sieve() {phi[1] = 1; int cnt = 0;for( int i = 2;i <= maxn;i ++ ) {if( ! vis[i] ) prime[++ cnt] = i, phi[i] = i - 1;for( int j = 1;j <= cnt && i * prime[j] <= maxn;j ++ ) {vis[i * prime[j]] = 1;if( i % prime[j] == 0 ) {phi[i * prime[j]] = phi[i] * prime[j];break;}elsephi[i * prime[j]] = phi[i] * ( prime[j] - 1 );}}for( int i = 1;i <= maxn;i ++ )for( int j = 1;i * j <= maxn;j ++ )sum[i * j] += i * phi[i] / 2;for( int i = 1;i <= maxn;i ++ )sum[i] = sum[i] * i + i;
}signed main() {sieve();int T, n;scanf( "%lld", &T );while( T -- ) {scanf( "%lld", &n );if( n == 1 ) printf( "1\n" );else printf( "%lld\n", sum[n] );}return 0;
}

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/317341.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

.NET Core使用微软AI认知服务识别文字语言

点击上方蓝字关注“汪宇杰博客”识别一段文字的语言有多种途径&#xff0c;在这个以AI为热点的时代&#xff0c;我们也可以给自己的应用强行加上AI&#xff0c;然后就能加上“智慧”的名字“自主研发成功”后去吹牛逼。今天我带大家来看看如何使用微软智慧云Azure提供的AI认知服…

【NET CORE微服务一条龙应用】第二章 配置中心使用

背景系列目录&#xff1a;【NET CORE微服务一条龙应用】开始篇与目录在分布式或者微服务系统里&#xff0c;通过配置文件来管理配置内容&#xff0c;是一件比较令人痛苦的事情&#xff0c;再谨慎也有湿鞋的时候&#xff0c;这就是在项目架构发展的过程中&#xff0c;配置中心存…

D - ABC Conjecture Gym - 102798D

D - ABC Conjecture Gym - 102798D 题意&#xff1a; 规定rad(n)n的所有质因子的乘积 给你一个c&#xff0c;问能否构造a和b使得abc且rad(abc)<c 题解&#xff1a; 先说结论&#xff0c;如果c可以拆分出两个一样的质因子&#xff0c;则能构造a和b 即 np1a1 * p2a2 . . .…

“幕后英雄”之Backing Fields【Microsoft Entity Framework Core随笔】

刘德华 有一首歌叫《马桶》&#xff0c;其中有一句歌词是&#xff1a;每一个马桶都是英雄。EFCore也有一个英雄&#xff0c;在幕后默默地任劳任怨。它就叫 "支持字段" (Backing Fields):中文版&#xff1a;https://docs.microsoft.com/zh-cn/ef/core/modeling/backin…

数论练习二之BSGS算法——随机数生成器,Matrix,Lunar New Year and a Recursive Sequence,Fermat‘s Last Theorem

[SDOI2013] 随机数生成器 description solution 肯定是非常想找一个通项公式来表示第nnn个数的 依据形式&#xff0c;考虑化成等比数列 xi1ka(xik)a⋅xibt⇒kba−1x_{i1}ka(x_ik)ax_ibt\Rightarrow k\frac{b}{a-1}xi1​ka(xi​k)a⋅xi​bt⇒ka−1b​ ⇒xiba−1ai−1(x1ba−…

NetCore下模拟和使用Modbus工业通信协议

Tips&#xff1a;1、目前NetCore下与Modbus通信的框架主要选择了 Modbus.Net https://github.com/parallelbgls/Modbus.Net2、modbus是常用的工业通信协议&#xff0c;在软件调试时可以通过modbus pollslave模拟通信通过达到调试目的&#xff0c;下图是我使用软件1&#xff09…

C - Rencontre Gym - 102798C

C - Rencontre Gym - 102798C 参考题解&#xff1a; 参考一 参考二 题意&#xff1a; 有一棵树&#xff0c;树上的点分为三种&#xff0c;&#xff08;一个点可以为多种&#xff09;&#xff0c;现在分别在三种点中随机选一点a&#xff0c;b&#xff0c;c&#xff0c;然后找到…

API标准化成为技术团队面临的最大挑战

调查表明&#xff0c;API 标准化成为了技术团队面临的最大挑战。SmartBear 发布了 2019 年 API 状态报告“The State of API 2019”&#xff0c;此报告旨在为 API 行业建立关于软件团队在 2019 年规划、设计、开发、测试、记录和监控 API 的方法、实践和工具的基准。此次调查有…

线性代数五之高斯消元——[SDOI2010]外星千足虫,[HNOI2013]游走,[HNOI2011]XOR和路径,[hdu 4035]Maze

多类型高斯消元杂题[SDOI2010]外星千足虫descriptionsolutioncode[HNOI2013]游走descriptionsolutioncode[HNOI2011]XOR和路径descriptionsolutioncodeMaze(树上高斯消元)problemsolutioncode[SDOI2010]外星千足虫 description solution 高斯消元的模板题 虽然感觉问了个最…

Ocelot 资源汇总

前言最近一两年.NET Core的关注度持续上升, 微服务及云原生应用开发上采用.NET Core也越来越多&#xff0c;Ocelot 作为.NET Core平台下一款开源的API 网关开发库越来越得到社区的认可&#xff0c;应用到生产中的案例也有好几百了。春节抽空整理了现有网上公开的Ocelot相关的资…

[TJOI2017]城市(未解决)

[TJOI2017]城市 题意&#xff1a; 一棵树&#xff0c;现在要求你将一条边改变他的位置&#xff0c;&#xff08;即改变左右所连接的端点&#xff0c;权值不变&#xff09;&#xff0c;修改后任意两点相互可达&#xff0c;且使得两个点之间的最大交通费用最小 题解: 有O(n^2…

数论三之组合数学Ⅰ-Max-Min Sums,Binomial Coefficient is Fun,Strivore,Bubble Sort,放棋子,LOJ6671,Iroha and a Grid

组合计数我最爱Max-Min SumsdescriptionsolutioncodeBinomial Coefficient is FundescriptionsolutioncodeStrivoredescriptionsolutioncodeBubble Sortdescriptionsolutioncode[HAOI2016]放棋子descriptionsolutioncodeEntropyIncreaser 与 MinecraftdescriptionsolutioncodeD…

语言之争与读书有感

移动互联网无处不在的今天&#xff0c;不同的学习方式让我们受益颇多。有人喜欢通过手机阅读各类技术专家的公众号分享&#xff1b;有人喜欢通过逛逛不同的博客&#xff0c;来了解当前时下的技术&#xff1b;也有人喜欢通过社区的形式&#xff0c;跟优秀的导师们一起梳理和发展…

CF566E-Restoring Map【bitset】

正题 题目链接:https://www.luogu.com.cn/problem/CF566E 题目大意 有一棵树&#xff0c;但是你不知道它的形态。你现在只知道距离每个点距离不超过222的点集&#xff0c;但是你不知道每个点集是对应哪个点的。 现在要你求这棵树。 2≤n≤10002\leq n\leq 10002≤n≤1000 解…

所有人都可以是开发人员——《Office 365开发入门指南》视频教程即将上市

今天是春节假期的最后一天&#xff0c;在这里给全国的朋友们拜个晚年&#xff0c;祝大家身体健康&#xff0c;晚年幸福啊。这个春节大家过的怎么样啊&#xff0c;我自己是在老家过的年&#xff0c;家乡的年味还是比较浓的&#xff0c;也再次感谢朋友圈的大家给我看了各地的风光…

数论三之排列组合Ⅱ——Virus Tree 2,RGB Coloring,123 Triangle,排列计数,排队,卡农

丝且人一口Virus Tree 2descriptionsolutioncodeRGB Coloringdescriptionsolutioncode123 Triangledescriptionsolutioncode[SDOI2016]排列计数descriptionsolutioncode[HNOI2012]排队descriptionsolutioncode[HNOI2011]卡农descriptionsolutioncodeVirus Tree 2 description …

.NET Core开发日志——OData

简述OData&#xff0c;即Open Data Protocol&#xff0c;是由微软在2007年推出的一款开放协议&#xff0c;旨在通过简单、标准的方式创建和使用查询式及交互式RESTful API。类库在.NET Core中想要使用OData功能的话需要添加Microsoft.AspNetCore.OData包。dotnet add package M…

ML.NET 0.10特性简介

IDataView被单独作为一个类库包IDataView组件为表格式数据提供了非常高效的处理方式&#xff0c;尤其是用于机器学习和高级分析应用。它被设计为可以高效地处理高维数据和大型数据集。并且也适合处理属于更大的分布式数据集中的单个数据区块结点。在ML.NET 0.10中&#xff0c;I…

数论五之容斥——硬币购物,Gerald and Giant Chess,幸运数字,Sky Full of Stars,已经没有什么好害怕的了

容斥的神[HAOI2008]硬币购物problemsolutioncodeCF559C Gerald and Giant Chessproblemsolutioncode[SCOI2010]幸运数字problemsolutioncodeCF997C Sky Full of Starsproblemsolutioncode已经没有什么好害怕的了problemsolutioncode[JLOI2015]骗我呢problemsolutioncode容斥要么…

NET Core微服务之路:基于Ocelot的API网关Relay实现--RPC篇

前言我们都知道&#xff0c;API网关是工作在应用层上网关程序&#xff0c;为何要这样设计呢&#xff0c;而不是将网关程序直接工作在传输层、或者网络层等等更底层的环境呢&#xff1f;让我们先来简单的了解一下TCP/IP的五层模型。&#xff08;图片出自http://www.cnblogs.com/…