2026暑期牛客多校1 2026-7-17

sol 8

以下顺序按照难度给出

A:签到

#include <bits/stdc++.h>

using namespace std;

using LL = long long;

#define endl "\n"

void solve(){

string s;

cin>>s;

LL n=s.size();

if(n!=8){

cout<<"Well-Being"<<endl;

return;

}

for(int i=0;i<8;i++){

if(si=='a'||si=='o'||si=='e'||si=='i'||si=='u'){

if(i%2==0){

cout<<"Well-Being"<<endl;

return;

}

}

else{

if(i%2==1){

cout<<"Well-Being"<<endl;

return;

}

}

}

cout<<"Suspected Virus"<<endl;

}

int main(){

ios::sync_with_stdio(0);

cin.tie(0),cout.tie(0);

LL T=1;

cin>>T;

while(T--){

solve();

}

}

E

前缀和预处理一下计算即可

签到

#include<bits/stdc++.h>

#define int long long

#define pii pair<int,int>

#define endl '\n'

#define fi first

#define se second

#define dbg(x) cout<<#x<<" = "<<x<<endl;

#define dbg2(x,y) cout<<#x<<" = "<<x<<" "<<#y<<" = "<<y<<endl;

#define dbg3(x,y,z) cout<<#x<<" = "<<x<<" "<<#y<<" = "<<y<<" "<<#z<<" = "<<z<<endl;

#define forn for(int i=1;i<=n;i++)

#pragma GCC optimize(2)

using namespace std;

void solve(){

int n;

cin>>n;

vector<int>a(n+5),pre(n+5);

for(int i=1;i<=n;i++){

cin>>ai;

prei=prei-1+ai;

}

int ans=0;

for(int i=1;i<=n;i++){

int j=n-i;

int res=pren-prei;

res-=j*ai;

ans+=res;

}

cout<<ans<<endl;

}

signed main(){

ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);

int T=1;

//cin>>T;

while(T--){

solve();

}

return 0;

}

F:

提供一个跟标准答案不同的构造

注意到循环位移不会改变式子的值,我们可以直接将排列循环位移至k位为x

#include <bits/stdc++.h>

using namespace std;

using LL = long long;

#define endl "\n"

LL ksm(LL a,LL n,LL mod){

LL res=1;

while(n){

if(n&1)res=res*a%mod;

n/=2;

a=a*a%mod;

}

return res%mod;

}

void solve(){

LL n,k,x;

cin>>n>>k>>x;

vector<LL>p(n+1);

vector<vector<LL>>t(n+1);

vector<LL>pos(n+1);

for(int i=0;i<n;i++){

cin>>pi;

posp\[i]=i;

}

vector<LL>ans(n+1);

LL sum=posx-k;

for(int i=0;i<n;i++){

ansi=p(i+sum+n)%n;

}

for(int i=0;i<n;i++)cout<<ansi<<" ";

cout<<endl;

}

int main(){

ios::sync_with_stdio(0);

cin.tie(0),cout.tie(0);

LL T=1;

//cin>>T;

while(T--){

solve();

}

}

G

诈骗题

不用管样例给出的立体图形,想象一根高度为1,半径为√2ϵ的圆柱,则对于底和顶上的元素而言,它们的距离近似为1

√ 1 +x2 ∼1+x2/2 ⇒√1+2ϵ≈1+ϵ

在高/底圆切/正方形密布放置即可

#include <bits/stdc++.h>

using namespace std;

using LL = long long;

#define endl "\n"

LL ksm(LL a,LL n,LL mod){

LL res=1;

while(n){

if(n&1)res=res*a%mod;

n/=2;

a=a*a%mod;

}

return res%mod;

}

mt19937_64 rnd(time(0));

void solve(){

LL n;

cin>>n;

double k1=0.01,k2=0.011;

cout<<2*n<<endl;

LL cnt=0;

for(int i=0;i<ceil(sqrt(n));i++){

for(int j=0;j<ceil(sqrt(n));j++){

if(cnt==n)break;

cnt++;

double x=0.0+i*k2,y=0.0+j*k2,z=0;

cout<<fixed<<setprecision(10)<<x<<" "<<y<<" "<<z<<endl;

}

}

cnt=0;

for(int i=0;i<ceil(sqrt(n));i++){

for(int j=0;j<ceil(sqrt(n));j++){

if(cnt==n)break;

cnt++;

double x=0.0+i*k2,y=0.0+j*k2,z=1;

cout<<fixed<<setprecision(10)<<x<<" "<<y<<" "<<z<<endl;

}

}

//sqrt(1+r*r) sqrt(1+4*r*r)-1=k

}

int main(){

ios::sync_with_stdio(0);

cin.tie(0),cout.tie(0);

LL T=1;

cin>>T;

while(T--){

solve();

}

}

J

大模拟

#include <bits/stdc++.h>

using namespace std;

using LL = long long;

#define endl "\n"

LL ksm(LL a,LL n,LL mod){

LL res=1;

while(n){

if(n&1)res=res*a%mod;

n/=2;

a=a*a%mod;

}

return res%mod;

}

int ts=0;

vector<LL>cola(6),colb(6);

LL ca(vector<LL>&a,int k){

sort(a.begin(),a.end());

LL cnt=0,n=5,Pa=0;

if(k==0){

cnt=*max_element(cola.begin(),cola.end());

}

else{

cnt=*max_element(colb.begin(),colb.end());

}

if(cnt==5&&a0==10&&a1==11&&a2==12&&a3==13&&a4==14){

return 9;

}

// if(ts){

// for(int i=0;i<n;i++){

// cout<<ai<<" ";

// }

// cout<<endl;

// }

for(int i=0;i<1;i++){

int f=1;

for(int j=1;j<n;j++){

//if(a(i+j)%n==2&&a(i+j-1)%n==14)continue;

if(a(i+j)%n==a(i+j-1)%n+1)continue;

f=0;

}

if(f)Pa=4;

}

if(a0==2&&a1==3&&a2==4&&a3==5&&a4==14)Pa=4;

if(cnt==5){

if(Pa==4)Pa=8;

else Pa=5;

}

unordered_map<LL,LL>mp;

for(int i=0;i<n;i++)mpa\[i]++;

int f1=0,f2=0,f3=0;

for(autox,sum:mp){

if(sum==2)f1++;

if(sum==3)f2++;

if(sum==4)f3++;

}

if(f1&&f2)Pa=max(Pa,6ll);

if(f3)Pa=max(Pa,7ll);

if(f1==2)Pa=max(Pa,2ll);

if(f1==1)Pa=max(Pa,1ll);

if(f2)Pa=max(Pa,3ll);

return Pa;

}

bool cmp(LL a,LL b){

return a>b;

}

void solve(){

int n=5;

//cin>>n;

for(int i=0;i<6;i++)colai=0,colbi=0;

vector<vector<LL>>vis(60,vector<LL>(5));

unordered_map<char,LL>mp;

mp'S'=1,mp'C'=2,mp'D'=3,mp'H'=4;

mp'A'=14,mp'J'=11,mp'Q'=12,mp'K'=13;

mp'T'=10;

for(int i=2;i<=9;i++){

char c='2'+i-2;

mpc=i;

}

vector<LL>a1,b1;

for(int i=1;i<=4;i++){

string s;

cin>>s;

a1.push_back(mps\[0]);

colamp\[s\[1]]++;

vismp\[s\[0]]mp\[s\[1]]=1;

}

for(int i=1;i<=4;i++){

string s;

cin>>s;

b1.push_back(mps\[0]);

colbmp\[s\[1]]++;

vismp\[s\[0]]mp\[s\[1]]=1;

}

auto check=\&(vector<LL>&a,vector<LL>&b,int k)->LL{

sort(a.begin(),a.end());

sort(b.begin(),b.end());

if(k==9){

return 1;

}

else if(k==8||k==4){

int fa=0,fb=0;

for(int i=0;i<n;i++){

if(ai==2)fa=1;

if(fa&&ai==14)ai=1;

if(bi==2)fb=1;

if(fb&&bi==14)bi=1;

}

sort(a.begin(),a.end(),cmp);

sort(b.begin(),b.end(),cmp);

for(int i=0;i<n;i++){

if(ai>bi)return 2;

else if(ai<bi)return 0;

}

return 1;

}

else{

unordered_map<LL,LL>mp1,mp2;

for(int i=0;i<n;i++)mp1a\[i]++,mp2b\[i]++;

priority_queue<pair<LL,LL>>pq,pq1;

for(autox,cnt:mp1){

pq.push({cnt,x});

}

for(autox,cnt:mp2){

pq1.push({cnt,x});

}

LL cnt=0;

while(!pq.empty()){

autocnt1,x1=pq.top();

pq.pop();

autocnt2,x2=pq1.top();

pq1.pop();

cnt++;

if(x1>x2)return 2;

if(x2>x1)return 0;

}

//cout<<cnt<<" "<<a4<<" "<<a3<<endl;

return 1;

}

};

int f1=2;

for(int i=2;i<=14;i++){

for(int j=1;j<=4;j++){

if(visij)continue;

visij=1;

vector<LL>ta=b1;

ta.push_back(i);

colbj++;

int f=0,f2=0;

int pb=ca(ta,1);

for(int I=2;I<=14;I++){

f=0;

for(int J=1;J<=4;J++){

if(visIJ)continue;

colaJ++;

vector<LL>tb=a1;

tb.push_back(I);

int pa=ca(tb,0);

// cout<<pa<<" "<<pb<<endl;

if(pa>pb){

f=2;

colaJ--;

break;

}

if(pa==pb){

f=check(tb,ta,pa);

}

colaJ--;

}

f2=max(f2,f);

if(f2==2)break;

}

// if(f2==0)cout<<i<<" "<<j<<endl;

f1=min(f1,f2);

colbj--;

visij=0;

if(f1==0)break;

}

}

if(f1==0)cout<<"GeiWoCaPiXie"<<endl;

else if(f1==1)cout<<"PaiMeiYouWenTi"<<endl;

else cout<<"WoYaoYanPai"<<endl;

// for(int i=0;i<6;i++)cout<<colai<<" ";

// cout<<endl;

//cout<<*max_element(cola.begin(),cola.end())<<endl;

}

int main(){

ios::sync_with_stdio(0);

cin.tie(0),cout.tie(0);

LL T=1;

cin>>T;

while(T--){

solve();

}

}

C:

kruskal重构树+并查集

想清楚怎么维护其实不难

代码来自队友

#include<bits/stdc++.h>

#define int long long

#define pii pair<int,int>

#define endl '\n'

#define fi first

#define se second

#define dbg(x) cout<<#x<<" = "<<x<<endl;

#define dbg2(x,y) cout<<#x<<" = "<<x<<" "<<#y<<" = "<<y<<endl;

#define dbg3(x,y,z) cout<<#x<<" = "<<x<<" "<<#y<<" = "<<y<<" "<<#z<<" = "<<z<<endl;

#define forn for(int i=1;i<=n;i++)

#pragma GCC optimize(2)

using namespace std;

const int N=250010;

int dx4={-1,1,0,0};

int dy4={0,0,-1,1};

int faN;

int visN;

int n,m,q;

int wN;

int mxN;

int lmN;

int aN;

int id(int x,int y){

return (x-1)*m+y;

}

int find(int x){

if(fax==x)return x;

int rt=find(fax);

lmx=max(lmx,lmfa\[x]);

return fax=rt;

}

void solve(){

cin>>n>>m>>q;

for(int i=1;i<=n*m;i++){

visi=0;

fai=i;

wi=0;

mxi=-1;

lmi=0;

ai=-1;

}

int l=0;

while(q--){

int op,xx,yy;

cin>>op>>xx>>yy;

int x=xx^l;

int y=yy^l;

int p=id(x,y);

visp=1;

if(op==1){

int v;

cin>>v;

ap=v;

wp=1;

mxp=v;

for(int d=0;d<4;d++){

int nx=x+dxd;

int ny=y+dyd;

if(nx<1||nx>n||ny<1||ny>m)continue;

int qid=id(nx,ny);

if(!visqid)continue;

int rv=find(qid);

if(rv!=p){

lmrv=max(lmrv,v-wrv+1);

farv=p;

wp+=wrv;

}

}

l=max(wfind(p)-1,0ll);

}

else{

find(p);

l=max(lmp-ap,0ll);

}

cout<<l<<"\n";

}

}

signed main(){

ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);

int T=1;

//cin>>T;

while(T--){

solve();

}

return 0;

}

H:

状态压缩dp+马尔可夫决策

1.因为每一轮手牌的状态变化仅跟双方的出牌/补牌有关,所以对于每种状态的每一种情况,我们可以预处理出它的nxt

2设Vt(s) 为当前状态 s、剩余t轮时Alice 的最大期望得分。

Vt(s) = max a: A.ca>0 min b: B.cb>0 payA(a,b) + 1 9 2 2 na=0 nb=0 Vt−1 s′(a,b,na,nb)

这个式子表示,对于每一种A的出牌,B取其得分最小的情况,而A取这些情况中最大的那一种

3.tips:期望dp特色:反向计算,dpi的i表示剩余i轮

4.马尔可夫决策:

不可约:由于每轮结束后双方独立随机补牌,从任意状态出发都可以在有 限步内以正概率到达任意其他状态;

非周期:返回同一状态的步数没有固定周期限制

故期望函数值的增长在极大收敛于同一常数;

该常数可通过1e4的增长期望求平均近似

5.对于1e4以下的数据,dp

对于1e4以上的数据,dp1e4+dt*g

code:

#include<bits/stdc++.h>

#define int long long

#define inf 0x3f3f3f3f3f3f3f

#define GG ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);

#define cnot cout<<"NO"<<"\n"

#define cyes cout<<"YES"<<"\n"

#define cans cout<<ans<<"\n"

#define pb push_back

#define x0 first

#define y0 second

#define lc p<<1

#define rc p<<1|1

#define mem(a,b) memset(a,b,sizeof(a))

#define sp(x) fixed<<setprecision(x)

#define all(v) v.begin(),v.end()

#define fr(i,st,ed) for(int i=st;i<=ed;i++)

#define ffr(i,st,ed,dt) for(int i=st;i<=ed;i+=dt)

using namespace std;

typedef pair<int,string>Pis;

typedef pair<int,int>Pii;

typedef pair<string,string>Pss;

const int N=2e4+10,mod=1e9+7,M=1e6+10;

int lowbit(int x){

return x&(-x);}

int nxt1053333;

double dp10005105;

int ID444;

struct Node{

int c3;

};

Node hand10;

bool WIN(int a,int b){

return (a==0&&b==1)||(a==1&&b==2)||(a==2&&b==0);

}

int PAY(int a,int b){

if(WIN(a,b))return 3;

if(a==b)return 1;

return 0;

}

void init(){

int idx=0;

fr(i,0,3){

fr(j,0,3-i){

int k=3-i-j;

handidx={{i,j,k}};

IDijk=idx++;

}

}

fr(i,0,9){

fr(j,0,9){

int s=i*10+j;

Node A=handi,B=handj;

fr(act,0,2){

fr(b,0,2){

fr(na,0,2){

fr(nb,0,2){

int ns=-1;

if(A.cact>0&&B.cb>0){

int nrA=A.c0-(act==0)+(na==0);

int nsA=A.c1-(act==1)+(na==1);

int npA=A.c2-(act==2)+(na==2);

int nrB=B.c0-(b==0)+(nb==0);

int nsB=B.c1-(b==1)+(nb==1);

int npB=B.c2-(b==2)+(nb==2);

if(nrA>=0&&nsA>=0&&npA>=0&&nrB>=0&&nsB>=0&&npB>=0){

ns=IDnrAnsAnpA*10+IDnrBnsBnpB;

}

}

nxtsactbnanb=ns;

}

}

}

}

}

}

}

double avg=0.0;

void DP(){

memset(dp,0.0,sizeof(dp));

fr(i,1,10000){

fr(j,0,9){

fr(k,0,9){

int s=j*10+k;

double Max=0;

bool f=0;

fr(a,0,2){

if(handj.ca==0)continue;

f=1;

double Min=inf;

fr(b,0,2){

if(handk.cb==0)continue;

int val=PAY(a,b);

double cst=0;

fr(na,0,2){

fr(nb,0,2){

int ns=nxtsabnanb;

if(ns!=-1)cst+=dpi-1ns;

}

}

double v=(double)val+(double)cst/9.0;

Min=min(Min,v);

}

Max=max(Max,Min);

}

if(f)dpis=Max;

}

}

}

fr(i,0,99)avg+=(dp10000i-dp9999i);

avg/=100.0;

}

void solve(){

int n;

cin>>n;

string str1,str2;

cin>>str1>>str2;

/*

int cnt13={0},cnt23={0};

fr(i,0,2){

cnt1i=count(all(str1),i+'R')+count(all(str1),i+'P')+count(all(str1),i+'S');

cnt2i=count(all(str2),i+'R')+count(all(str2),i+'P')+count(all(str2),i+'S');

}

int s1=IDcnt1\[0]cnt1\[1]cnt1\[2],s2=IDcnt2\[0]cnt2\[1]cnt2\[2];

*/

int ca3={0}, cb3={0};

for (char c : str1) { if(c=='R')ca0++; else if(c=='S')ca1++; else ca2++; }

for (char c : str2) { if(c=='R')cb0++; else if(c=='S')cb1++; else cb2++; }

int s1=IDca\[0]ca\[1]ca\[2];

int s2=IDcb\[0]cb\[1]cb\[2];

if(n<=10000){

cout<<sp(12)<<dpns1\*10+s2<<"\n";

return;

}

else{

int dt=n-10000;

double ans=dp10000s1\*10+s2+(double)dt*avg;

cout<<sp(12)<<ans<<"\n";

return;

}

}

signed main(){

GG;

init();

DP();

int _t=1;

cin>>_t;

while(_t--){

solve();

}

}

L

AC自动机优化/前后缀最大值/计数问题

(牛客的中文题解并不是很说人话,所以这是一个详细版本

首先,对于每个询问串,我们一定希望找出它在s中的位置,所以本题被分解成两个部分:找位置和计算

1.假设我们已经得到了每个询问串在s的具体位置p1,...,pm

所有好区间L,R 可划分为m个部分:

1 L∈1,p1, R ∈ p1 +\|t\|−1,n

2 L∈p1+1,p2, R ∈ p2 +\|t\|−1,n

3 ···

4 L∈pm−1+1,pm, R ∈ pm +\|t\|−1,n

这样可以保证至少包含1个t;

我们知道,val=prer-prel-1,想要极大化val,我们希望能够同时极大化prer和极小化prel-1,也就是需要我们去对pre做前缀最小值和后缀最大值

而对所有区间计数,求所有区间累加的具体方法为:

对于一个l,r,我们令上一段l,r的l为prev,令L表示prev-l-1的前缀和的累和,R表示r-n的前缀和的累和,左侧元素个数为cntL=l-prv,右侧元素个数为cntR=n-r+1;则完全包含该段区间的累和为R*cntL-L*cntR,这个通过手算其实很好验证;

其次,我们考虑寻找所有的子串位置,一个个压入kmp则一定超时,所以我们考虑AC自动机优化,

AC自动机的建立和模板基本上没有区别,唯一的优化是增加了up来优化fail指针的跳跃,具体的,我们希望在扫描s的时候,每经过一个字母都往上跳,寻找是否存在符合的以它为结尾的询问,但如果该节点对应的值未被记录则可以直接跳至它的fail指针处

而如果存在以当前指针为结尾的询问,则在该询问里加入当前位置

时间可行性则是:

相同长度的不同子串在S中的出现位置互不相同,因此同一个长度的查 询的出现位置个数之和是O(n),不同的查询串长度只有O(√T)种,总 复杂度是O(T|Σ|+n√T),其中 T= |t|,|Σ|=26 是字符集大小。

(都打多校了不会有人没学AC自动机吧。。。)

code:

#include<bits/stdc++.h>

#define int long long

#define inf 0x3f3f3f3f3f3f3f

#define GG ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);

#define cnot cout<<"NO"<<"\n"

#define cyes cout<<"YES"<<"\n"

#define cans cout<<ans<<"\n"

#define pb push_back

#define x0 first

#define y0 second

#define lc p<<1

#define rc p<<1|1

#define mem(a,b) memset(a,b,sizeof(a))

#define sp(x) fixed<<setprecision(x)

#define all(v) v.begin(),v.end()

#define fr(i,st,ed) for(int i=st;i<=ed;i++)

#define ffr(i,st,ed,dt) for(int i=st;i<=ed;i+=dt)

using namespace std;

typedef pair<int,string>Pis;

typedef pair<int,int>Pii;

typedef pair<string,string>Pss;

const int N=3e5+10,mod=998244353,M=1e6+10;

int lowbit(int x){

return x&(-x);}

int qnodeN;

struct AC{

int nxtN26,failN,L,root;

int upN,lenN;

int newnode(){

memset(nxtL,-1,sizeof(nxtL));

upL=-1;

lenL=0;

return L++;

}

void init(){

L=0;

root=newnode();

}

void ist(string s,int id){

int now=root;

for(int i=0;i<s.size();i++){

int c=si-'a';

if(nxtnowc==-1)

nxtnowc=newnode();

now=nxtnowc;

}

qnodeid=now;

lennow=s.size();

}

void build(){

queue<int>Q;

failroot=root;

for(int i=0;i<26;i++){

if(nxtrooti==-1)

nxtrooti=root;

else{

failnxt\[rooti]=root;

Q.push(nxtrooti);

}

}

while(!Q.empty()){

int u=Q.front();

Q.pop();

for(int i=0;i<26;i++){

if(nxtui==-1)

nxtui=nxtfail\[u]i;

else{

failnxt\[ui]=nxtfail\[u]i;

Q.push(nxtui);

}

}

upu=lenfail\[u]?failu:upfail\[u];

}

}

}ac;

int PN,preN,sumPN,prefminN,sufmaxN;

int SUM(int l,int r){

if(l>r)return 0;

return (sumPr-sumPl-1+mod)%mod;

}

int QMOD(int x){

x%=mod;

return x<0?x+mod:x;

}

vector<int>posN;

bool visN;

int MAXN,SUMSN;

void solve(){

int n,q;

cin>>n>>q;

string S;

cin>>S;

S=" "+S;

fr(i,1,n){

cin>>Pi;

prei=prei-1+Pi;

}

prefmin0=pre0;

fr(i,1,n){

prefmini=min(prefmini-1,prei);

}

sufmaxn=pren;

for(int i=n-1;i>=1;i--){

sufmaxi=max(sufmaxi+1,prei);

}

fr(i,1,n){

sumPi=QMOD(sumPi-1+prei);

}

ac.init();

fr(i,1,q){

string s;

cin>>s;

ac.ist(s,i);

}

ac.build();

int now=ac.root;

fr(i,1,n){

now=ac.nxtnowS\[i-'a'];

for(int j=now;j;j=ac.upj){

if(ac.lenj){

posj.pb(i-ac.lenj+1);

}

}

}

fr(i,1,q){

int Pos=qnodei;

if(visPos){

cout<<MAXPos<<" "<<SUMSPos<<"\n";

continue;

}

visPos=1;

int Max=-inf,Sum=0;

for(int x:posPos){

int l=x,r=x+ac.lenPos-1;

int val=sufmaxr-prefminl-1;

Max=max(Max,val);

}

MAXPos=Max;

int sz=posPos.size();

for(int k=0,prv=0;k<sz;k++){

int l=posPosk,r=l+ac.lenPos-1;

int L=QMOD(SUM(prv,l-1));

int R=QMOD(SUM(r,n));

int cntL=l-prv,cntR=n-r+1;

Sum=(Sum+QMOD(R*cntL-L*cntR)+mod)%mod;

Sum=QMOD(Sum);

prv=l;

}

SUMSPos=(Sum+mod)%mod;

cout<<Max<<" "<<SUMSPos<<"\n";

}

}

signed main(){

GG;

int _t=1;

//cin>>_t;

while(_t--){

solve();

}

}

相关推荐
wabs6661 小时前
关于图论【卡码网107.寻找存在的路线的思考】
数据结构·算法·图论
半兽先生1 小时前
大模型技术开发与应用——4.大模型提示词工程实战
人工智能·算法
wuminyu2 小时前
JUC组件逐层剥离与深度剖析
java·linux·c语言·jvm·c++·算法
hhzz2 小时前
机器学习-算法模型系列文章:07-SVM 一巴掌拍出来的超平面:SVM核函数选错,再干净的数据也救不了你
算法·机器学习·支持向量机
geovindu3 小时前
java: Gale-Shapley Algorithm
java·开发语言·后端·算法
冻柠檬飞冰走茶3 小时前
PTA基础编程题目集 7-34 通讯录的录入与显示(C语言实现)
c语言·开发语言·数据结构·算法
zander2583 小时前
LeetCode 79. 单词搜索
算法·深度优先
老洋葱Mr_Onion3 小时前
【C++】高精度模板
开发语言·c++·算法
脚踏实地皮皮晨4 小时前
003003002_WPF Grid 基类官方类定义逐行深度解析
开发语言·windows·算法·c#·wpf·visual studio