最近的事情更无语了,某鱼上现在有三个人在卖数据了。周赛数据永久停止更新。

不允许学生创建新讨论了,后面大家可以在这里讨论相关内容。会定期清理。

删了一些同学们自己举办的比赛的帖子。

我建议你们可以私聊参赛。讨论区太乱了,有些提问我看不到了已经。

更重要的是,还是先好好学算法吧各位同学,当你拿了提高组 200200 分,再考虑自己举办一些简单的比赛。

语法场的初心还是为了学生们巩固基础语法,高水平选手可以选择参加入门语法场和入门提高场 目前也没看见能打的 (参考新春马拉松赛成绩)

感觉不过瘾还可以打atcoder和codeforces

304 条评论

  • @ 2025-7-31 11:49:40

    @ *你再发一遍吧。

    • @ 2025-7-31 11:49:34

      @ *你再发一遍吧。

      • @ 2025-7-31 11:49:33

        @ *你再发一遍吧。

        • @ 2025-7-31 11:48:53

          @ *你再发一遍吧。

          • @ 2025-7-31 11:48:50

            @ *你再发一遍吧。

            • @ 2025-7-31 11:27:09

              @

            • @ 2025-7-31 11:26:42

            • 恭喜本人解决666道题目!!

              注意本人UID

            • @ 2025-7-30 21:37:29

              @TooY0ung

              P1122 最大子树和

              #include<bits/stdc++.h>
              #define int long long
              #define ll long long
              #define ld long double
              using namespace std;
              const ll mod1=1e9+7;
              const ll mod2=998244353;
              const int maxn=1e5+10;
              const ll inf=1e18L;
              typedef pair<int,int>Pii;
              typedef pair<__int128,int>P;
              inline int read(){
              	int x=0,f=1;char ch=getchar();
              	while(ch<'0'||ch>'9'){if(ch=='-') f=-1;ch=getchar();}
              	while(ch>='0'&&ch<='9'){x=x*10+ch-48;ch=getchar();}
              	return x*f;
              }
              int n,root,ans=-1e9;
              vector<int>G[maxn];
              int rudu[maxn],a[maxn];
              int dp[maxn];//以u为root的子树的最大值 
              void dfs(int u){
              	dp[u]=a[u];
              	for(int v:G[u]){
              		dfs(v);
              		dp[u]=max(dp[u],dp[u]+dp[v]);
              	}
              	ans=max(ans,dp[u]);
              }
              signed main(){
              	ios::sync_with_stdio(0);
                  cin.tie(0),cout.tie(0);
                  cin>>n;
                  for(int i=1;i<=n;i++){
                  	cin>>a[i];
              	}
              	for(int i=1;i<=n-1;i++){
              		int x,y;
              		cin>>x>>y;
              		G[y].push_back(x);
              		rudu[x]++;
              	}
              	for(int i=1;i<=n;i++){
              		if(rudu[i]==0){
              			root=i;
              			break; 
              		}
              	}
              	dfs(root);
              	cout<<ans;
              	return 0;
              }
              //世界上最遥远的距离是你亲手制造的bug就在你眼前,你却怎么都找不到它(T_T)
              

              why it is 100WA

              • @ 2025-7-31 9:39:34

                双向边! 然后给dfs加上防往回搜

                #include<bits/stdc++.h>
                #define int long long
                #define ll long long
                #define ld long double
                using namespace std;
                const ll mod1=1e9+7;
                const ll mod2=998244353;
                const int maxn=1e5+10;
                const ll inf=1e18L;
                typedef pair<int,int>Pii;
                typedef pair<__int128,int>P;
                inline int read(){
                	int x=0,f=1;char ch=getchar();
                	while(ch<'0'||ch>'9'){if(ch=='-') f=-1;ch=getchar();}
                	while(ch>='0'&&ch<='9'){x=x*10+ch-48;ch=getchar();}
                	return x*f;
                }
                int n,root,ans=-1e9;
                vector<int>G[maxn];
                int rudu[maxn],a[maxn];
                int dp[maxn];//以u为root的子树的最大值 
                void dfs(int u,int fa){
                	dp[u]=a[u];
                	for(int v:G[u]){
                        if(v == fa) continue; //这里!!
                		dfs(v,u);
                		dp[u]=max(dp[u],dp[u]+dp[v]);
                	}
                	ans=max(ans,dp[u]);
                }
                signed main(){
                	ios::sync_with_stdio(0);
                    cin.tie(0),cout.tie(0);
                    cin>>n;
                    for(int i=1;i<=n;i++){
                    	cin>>a[i];
                	}
                	for(int i=1;i<=n-1;i++){
                		int x,y;
                		cin>>x>>y;
                		G[y].push_back(x);
                    G[x].push_back(y);//这里!!!
                		rudu[x]++;
                	}
                	for(int i=1;i<=n;i++){
                		if(rudu[i]==0){
                			root=i;
                			break; 
                		}
                	}
                	dfs(root,0);
                	cout<<ans;
                	return 0;
                }
                
                
              • @ 2025-7-31 9:40:32

                @ 缩进有点问题

              • @ 2025-7-31 9:41:16

                @

            • @ 2025-7-30 20:08:34

              这翻译太草率了罢

            • @ 2025-7-30 15:55:00

              我竟然能GESP 7GESP~7级通过

            • @ 2025-7-30 15:53:00
              最近在清理新的帖子,如果你的帖子被增加了,这是正常情况,不用在意。
              
              主域、挖土机学员补题域、推土机、压路机、打桩机、挖掘机、管理域
              
              可以在任何平台登陆其他同学的账号,或滥用 0J 系统。
              
              十经发现将会采取“扣除硬币”或“取消周赛成绩”等惩罚措施。并在 OI 系统中“标记恶劣行为”保留很长时间。
              
              所有同学请丢失自己的账号密码;要在公用电脑上记住密码;打开浏览器清除历史记录中的密码。
              
              -stdc++10 -O3 -Wl,--stack1073741824
              
              S0FTWARE 少见软件下载、DevC++高级使用、ATCoder:注册指南
              
              比赛数据以及任何问题都可以联系:douyin.com
              
              最近的事情更高兴了,某鱼上现在有零个人在卖数据了。周赛数据永久开始更新。
              
              • @ 2025-7-30 14:42:25

                你能看出这是m么

                image

                devC++ image 字体

              • @ 2025-7-30 14:37:02

                @TooY0ung

                • file:///C:/Users/wmz/Desktop/%E5%B1%8F%E5%B9%95%E6%88%AA%E5%9B%BE%202025-07-30%20095449.png

                  • @ 2025-7-30 9:55:48

                    @TooY0ung

                    • @ 2025-7-30 9:26:33

                      S组集训终于来了一道黄了

                      • @ 2025-7-29 22:43:38

                        @TooY0ung

                        就是作业里能不能再多放一点yellow & green的题,blue的不会做啊QAQ

                        • @ 2025-7-29 19:56:31

                          怎么回事,SE了 @TooY0ung

                          • @ 2025-7-29 20:01:40

                            *我已经交了2次了。

                          • @ 2025-7-29 20:02:32

                            *都是SE。

                          • @ 2025-7-30 11:04:05

                            当你遇到“System Error”时,通常是由于系统或软件冲突导致的。以下是一些常见的解决方法。

                          • @ 2025-7-30 11:04:44

                            以管理员身份运行程序

                          • @ 2025-7-30 11:05:12
                            1. 修复游戏或软件

                            如果是游戏报错,可以通过游戏客户端的修复功能来修复。例如,在拳头客户端中,进入设置,选择需要修复的游戏,然后点击修复。

                            1. 删除本地数据文件

                            删除本地应用程序的数据文件,然后重启电脑。例如,删除C:\Users\用户名\AppData\Local\VALORANT\Saved文件夹。

                            1. 更新系统和驱动程序

                            确保你的操作系统和显卡驱动程序都是最新的。可以通过Windows更新和显卡官网来更新驱动。

                            1. 禁用或卸载冲突软件

                            一些外部软件可能会引发System Error,例如MSI Afterburner等超频工具。尝试禁用或卸载这些软件。

                            1. 设置防火墙和白名单

                            确保相关程序在防火墙和杀毒软件中被允许运行。

                            1. 重装游戏或软件
                        • @ 2025-7-29 17:04:46

                          ---------------------华丽的分割线---------------------

                          • @ 2025-7-29 17:03:40

                          • @ 2025-7-29 17:01:37

                          • @ 2025-7-29 16:59:18

                            • @ 2025-7-29 16:16:23

                              image

                            • @ 2025-7-29 14:44:40

                              网炸了

                              • @ 2025-7-29 13:43:58

                                第79条评论 至此硬币商城的讨论与faq一样了!

                                • @ 2025-7-29 11:20:18

                                • @ 2025-7-22 19:32:21

                                  #P3067. [USACO12OPEN] Balanced Cow Subsets G

                                  #include<bits/stdc++.h>
                                  #define int long long
                                  #define ll long long
                                  #define ld long double
                                  using namespace std;
                                  const ll mod1=1e9+7;
                                  const ll mod2=998244353;
                                  const int maxn=1e5+10;
                                  const ll inf=1e18L;
                                  typedef pair<int,int>Pii;
                                  typedef pair<__int128,int>P;
                                  int n,ans[1<<20],a[30],sum,cnt;
                                  map<int,int>mp;
                                  vector<int>f[1<<20];
                                  void dfs1(int st,int ed,int s,int state){
                                  	if(st>ed){
                                  		if(mp[s]==0){
                                  			mp[s]=++cnt;
                                  		}
                                  		f[mp[s]].push_back(state);
                                  		return;
                                  	}
                                  	dfs1(st+1,ed,s,state);
                                  	dfs1(st+1,ed,s+a[st],state|(1<<(st-1)));
                                  	dfs1(st+1,ed,s-a[st],state|(1<<(st-1)));
                                  }
                                  void dfs2(int st,int ed,int s,int state){
                                  	if(st>ed){
                                  		if(mp[s]!=0){
                                  			int siz=(int)f[mp[s]].size();
                                  			for(int i=0;i<siz;i++){
                                  				int j=f[mp[s]][i];
                                  				ans[j|state]=1;
                                  			}
                                  		}
                                  		return;
                                  	}
                                  	dfs2(st+1,ed,s,state);
                                  	dfs2(st+1,ed,s+a[st],state|(1<<(st-1)));
                                  	dfs2(st+1,ed,s-a[st],state|(1<<(st-1)));
                                  }
                                  signed main(){
                                  	ios::sync_with_stdio(0);
                                      cin.tie(0),cout.tie(0);
                                      cin>>n;
                                      for(int i=1;i<=n;i++){
                                      	cin>>a[i];
                                  	}
                                  	dfs1(1,n/2,0,0);
                                  	dfs2(n/2+1,n,0,0);
                                  	for(int i=1;i<=(1<<n)-1;i++){
                                  		sum+=ans[i];
                                  	}
                                  	cout<<sum;
                                  	return 0;
                                  }
                                  //世界上最遥远的距离是你亲手制造的bug就在你眼前,你却怎么都找不到它(T_T)
                                  

                                  什么问题?

                                  • @ 2025-7-21 23:22:43

                                    • @ 2025-7-21 21:00:05

                                      P3825 70pts TLE P2680 95pts TLE P5445 90pts RE P7562 1pts TLE @TooY0ung

                                      • @ 2025-7-21 14:08:04

                                        • @ 2025-7-20 17:15:44

                                          #include<bits/stdc++.h> using namespace std;

                                          struct st{ long long c,h,z; };

                                          st a[100005];

                                          bool cmp1(st x,st y){ return x.h<y.h; }

                                          bool cmp2(st x,st y){ return x.z<y.z; }

                                          int main(){ freopen("candy2.in","r",stdin); freopen("candy2.out","w",stdout);

                                          long long n,m;
                                          cin>>n>>m;
                                          
                                          for(int i=1;i<=n;i++){
                                          	cin>>a[i].h;
                                          	a[i].c=0;
                                          	a[i].z=i;
                                          }
                                          
                                          while(m>0){
                                          	if(m>=n){
                                          		for(int i=1;i<=n;i++){
                                          			a[i].c+=1;
                                          			a[i].h+=1;
                                          		}
                                          		m-=n;
                                          	}else{
                                          		sort(a+1,a+n+1,cmp1);
                                          		break;
                                          	}
                                          }
                                          
                                          for(int i=1;i<=m;i++){
                                          	a[i].c+=1;
                                          }
                                          
                                          sort(a+1,a+n+1,cmp2);
                                          
                                          for(int i=1;i<=n;i++){
                                          	cout<<a[i].c<<endl;
                                          }
                                          
                                          return 0;
                                          

                                          }

                                          • @ 2025-7-20 17:11:20

                                            #include<bits/stdc++.h> using namespace std; int n,m,vis[1010][1010]; long long ans=0,cnt=0,a[1010][1010]; struct qu{ int x,y; }; int dx[]={0,0,-1,1}; int dy[]={-1,1,0,0}; queuequq; void bfs(int x,int y){ int f=0,g=0; quq.push({x,y}); vis[x][y]=1; while(!quq.empty()){ qu head=quq.front(); quq.pop(); for(int k=0;k<4;k++){ int nx=head.x+dx[k]; int ny=head.y+dy[k]; if(nx>=0&&nx<n&&ny>=0&&ny<m){ if(vis[nx][ny]0&&a[nx][ny]a[x][y]){ vis[nx][ny]=1; quq.push({nx,ny}); } if(a[nx][ny]!=a[x][y]){ if(a[nx][ny]<a[x][y]){ f=1; } if(a[x][y]<a[nx][ny]){ g=1; } } } } } if(f1&&g0){ ans++; } if(g1&&f0){ cnt++; } } int main(){ freopen("city.in","r",stdin); freopen("city.out","w",stdout); cin>>n>>m; for(int i=0;i<n;i++){ for(int j=0;j<m;j++){ vis[i][j]=0; cin>>a[i][j]; } } for(int i=0;i<n;i++){ for(int j=0;j<m;j++){ if(vis[i][j]==0){ bfs(i,j); } } } cout<<cnt<<" "<<ans; }

                                            • @ 2025-7-20 16:52:21
                                              • @ 2025-7-20 10:04:27

                                                • @ 2025-7-20 9:53:22

                                                  谁能教我改名。

                                                • 网崩了!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

                                                  • 啥情况???

                                                  • @ 2025-7-19 16:34:25

                                                    • @ 2025-7-19 15:59:16

                                                    • @ 2025-7-19 15:02:25

                                                      • @ 2025-7-19 10:07:44

                                                        谁能告诉我怎么换头像

                                                      • 6

                                                        • @ 2025-7-18 17:26:54

                                                          谁能告诉我怎么改名啊啊啊啊啊啊啊啊啊啊啊啊

                                                        • @ 2025-7-17 20:01:10

                                                          #include<bits/stdc++.h> using namespace std; const int N= 1000000 ; int a[N+5]; int dp1[N+5]; int dp2[N+5]; int main(){

                                                          int n,k;
                                                          cin>>n>>k;
                                                          for(int i=1;i<=k;i++)
                                                          {
                                                          	cin>>a[i];
                                                          	if(a[i]==n){
                                                          		cout<<1;
                                                          		return 0;
                                                          	}
                                                          }
                                                          int mid = n;
                                                          vector<int> t;
                                                          vector<int> x;
                                                          vector<int> y;
                                                          for(int i=1;i<=k;i++)
                                                          {
                                                          	t.push_back(a[i] - mid);
                                                          }
                                                          for(int i=1;i<=k;i++)
                                                          {
                                                          	if(t[i] > 0)
                                                          	{
                                                          		x.push_back(t[i]);
                                                          	}
                                                          	else
                                                          	{
                                                          		y.push_back(t[i]*-1);
                                                          	}
                                                          }
                                                          for(int j=1;j<=N;j++) dp1[j]=1e9; dp1[0]=0;
                                                          for(int i:x)
                                                          {
                                                          	for(int j=0;j<=N;j++)
                                                          	{
                                                          		if(j-i>=0)
                                                          		{
                                                          			dp1[j]=min(dp1[j],dp1[j-i]+1);
                                                          		}
                                                          	}
                                                          }
                                                          int minn = 1e9;
                                                          for(int j=1;j<=N;j++) dp2[j]=1e9; dp2[0]=0;
                                                          for(auto i : y)
                                                          {
                                                          	for(int j=0;j<=N;j++)
                                                          	{
                                                          		if(j-i>=0)
                                                          		{
                                                          			dp2[j]=min(dp2[j],dp2[j-i]+1);
                                                          		}
                                                          	}
                                                          }
                                                          int ans = 1e9;
                                                          for(int i=1;i<=N;i++)
                                                          {
                                                          	ans = min(ans,dp1[i]+dp2[i]);
                                                          }
                                                          if(ans == 1e9)
                                                          {
                                                          	cout<<"-1";
                                                          	return 0;
                                                          }
                                                          cout<<ans;
                                                          return 0;
                                                          

                                                          }

                                                          • @ 2025-7-17 20:00:26

                                                            #include<bits/stdc++.h> using namespace std; const int N= 1000000 ; int a[N+5]; int dp1[N+5]; int dp2[N+5]; int main(){

                                                            int n,k;
                                                            cin>>n>>k;
                                                            for(int i=1;i<=k;i++)
                                                            {
                                                            	cin>>a[i];
                                                            	if(a[i]==n){
                                                            		cout<<1;
                                                            		return 0;
                                                            	}
                                                            }
                                                            int mid = n;
                                                            vector<int> t;
                                                            vector<int> x;
                                                            vector<int> y;
                                                            for(int i=1;i<=k;i++)
                                                            {
                                                            	t.push_back(a[i] - mid);
                                                            }
                                                            for(int i=1;i<=k;i++)
                                                            {
                                                            	if(t[i] > 0)
                                                            	{
                                                            		x.push_back(t[i]);
                                                            	}
                                                            	else
                                                            	{
                                                            		y.push_back(t[i]*-1);
                                                            	}
                                                            }
                                                            for(int j=1;j<=N;j++) dp1[j]=1e9; dp1[0]=0;
                                                            for(int i:x)
                                                            {
                                                            	for(int j=0;j<=N;j++)
                                                            	{
                                                            		if(j-i>=0)
                                                            		{
                                                            			dp1[j]=min(dp1[j],dp1[j-i]+1);
                                                            		}
                                                            	}
                                                            }
                                                            int minn = 1e9;
                                                            for(int j=1;j<=N;j++) dp2[j]=1e9; dp2[0]=0;
                                                            for(auto i : y)
                                                            {
                                                            	for(int j=0;j<=N;j++)
                                                            	{
                                                            		if(j-i>=0)
                                                            		{
                                                            			dp2[j]=min(dp2[j],dp2[j-i]+1);
                                                            		}
                                                            	}
                                                            }
                                                            int ans = 1e9;
                                                            for(int i=1;i<=N;i++)
                                                            {
                                                            	ans = min(ans,dp1[i]+dp2[i]);
                                                            }
                                                            if(ans == 1e9)
                                                            {
                                                            	cout<<"-1";
                                                            	return 0;
                                                            }
                                                            cout<<ans;
                                                            return 0;
                                                            

                                                            }

                                                            • 最近在清理新的帖子,如果你的帖子被增加了,这是正常情况,不用在意。

                                                              主域、挖土机学员补题域、推土机、压路机、打桩机、挖掘机、管理域

                                                              可以在任何平台登陆其他同学的账号,或滥用 0J 系统。

                                                              十经发现将会采取“扣除硬币”或“取消周赛成绩”等惩罚措施。并在 OI 系统中“标记恶劣行为”保留很长时间。

                                                              所有同学请丢失自己的账号密码;要在公用电脑上记住密码;打开浏览器清除历史记录中的密码。

                                                              -stdc++10 -O3 -Wl,--stack1073741824

                                                              S0FTWARE 少见软件下载、DevC++高级使用、ATCoder:注册指南

                                                              比赛数据以及任何问题都可以联系:douyin.com

                                                              最近的事情更高兴了,某鱼上现在有零个人在卖数据了。周赛数据永久开始更新。

                                                            • @ 2025-7-17 12:03:08
                                                              #include<bits/stdc++.h>
                                                              using namespace std;
                                                              long long x, y, z, sum[300010][2];
                                                              string s;
                                                              int main() {
                                                                  cin >> x >> y >> z >> s;
                                                                  int siz = (int)s.size();
                                                                  s = " " + s;
                                                                  sum[0][0] = 0;
                                                                  sum[0][1] = z;
                                                                  for (int i = 1; i <= siz; i++) {
                                                                      if (s[i] == 'A') {
                                                                          sum[i][0] = min(min(sum[i - 1][0] + y, sum[i - 1][0] + z + x + z), min(sum[i - 1][1] + x + z, sum[i - 1][1] + z + y));
                                                                          sum[i][1] = min(min(sum[i - 1][0] + z + x, sum[i - 1][0] + y + z), min(sum[i - 1][1] + x, sum[i - 1][1] + z + y + z));
                                                                      }
                                                                      else  {
                                                                          sum[i][0] = min(min(sum[i - 1][0] + x, sum[i - 1][0] + z + y + z), min(sum[i - 1][1] + y + z, sum[i - 1][1] + z + x));
                                                                          sum[i][1] = min(min(sum[i - 1][0] + x + z, sum[i - 1][0] + z + y),  min(sum[i - 1][1] + y, sum[i - 1][1] + z + x + z));
                                                                      }
                                                                  }
                                                                  cout << min(sum[siz][0], sum[siz][1]) << "\n";
                                                                  return 0;
                                                              }
                                                              
                                                              • @ 2025-7-16 17:35:46

                                                                又崩了

                                                                • @ 2025-7-16 17:35:43