38 条题解

  • 3
    @ 2025-10-25 9:33:33
    #include<bits/stdc++.h>
    using namespace std;
    const int N=1e3+10;
    int a,b;
    int main()
    {
    	cin >> a >> b;
    	cout << a+b;
    	return 0;
    }
    
    
    • 2
      @ 2025-11-22 9:37:06
      #include<bits/stdc++.h>
      using namespace std;
      const int N=1e3+10;
      int Accepted(int a,int b){//Accepted()
      	return a+b; 
      }
      int main()
      {
      	int a,b;
      	cin >> a >> b;
      	cout << Accepted(a,b);
      	return 0;
      }
      //老登布置的作业系列
      
      
      • 1
        @ 2025-12-30 22:23:26
        #include<iostream>
        using namespace std;
        int a,b;
        int main ( ) {
            cin>>a>>b;
            cout<<a+b;
        }
        
        • 1
          @ 2025-11-8 9:43:09
          #include<bits/stdc++.h>
          
          using namespace std;
          int main()
          {
          	string a1,b1;
          	int a[10000]={},b[10000]={},c[10000]={};
          	cin >> a1 >> b1;
          	int lena=a1.size();
          	int lenb=b1.size();
          	for(int i=1;i<=lena;i++)
          	{
          		a[i]=a1[lena-i]-'0';
          	} 
          	for(int i=1;i<=lenb;i++)
          	{
          		b[i]=b1[lenb-i]-'0';
          	}  
          	int lenc=1;
          	while(lenc<=lena||lenc<=lenb)
          	{
          		c[lenc]+=a[lenc]+b[lenc];
          		if(c[lenc]>9)
          		{
          			c[lenc]-=10;
          			c[lenc+1]++; 
          		}
          		lenc++;
          	} 
          	if(c[lenc]==0)
          	{
          		lenc--;
          	}
          	for(int i=lenc;i>=1;i--)
          	{
          		cout << c[i];
          	}
          	return 0;
          }
          
          • 1
            @ 2024-7-26 10:58:29

            A+B Problem题解

            新用户强烈建议阅读此帖

            首先我们要理清思路

            1.需要用到什么样的头文件?

            2.用什么样的数据范围?

            3.思路是什么?

            首先题目中的数据范围是1a,b≤10^6, 而int 的范围是-2147483648-2147483647 正合题意,所以数据类型可以用int

            话不多说,直接上代码

            #include<iostream>//导入头文件,iostream里面是标准输入输出流(我说的什么?) 
            using namespace std;//使用标准命名空间 
            int main(){//主函数,程序的入口 
            	int a,b;//创建a,b两个整型变量 
            	cin>>a>>b;//输入 a , b 两个变量 
            	cout<<a+b; //输出a+b的内容 
            	return 0; 
            }
            

            本蒟蒻发的第一篇题解,请多多支持喵~~

            • 0
              @ 2026-2-2 12:29:27
              #include<bits/stdc++.h>
              using namespace std;
              
              const int N=1e5+5;
              
              int n , m , a[N];
              int u , v;
              vector<int> vc[N];
              int dfn[N] , low[N] , cnt;
              bool vis[N];
              stack<int> st;
              int belong_cnt; //强连通分量个数 
              vector<int> belong[N];//强连通分量 
              int color[N];//color[i]表示第i头牛所处的强连通分量  
              vector<int> newvc[N];
              int in[N];//入度 
              int ans[N];
              void tarjan(int u)
              {
              	dfn[u] = low[u] = ++cnt;
              	vis[u] = 1;
              	st.push(u);
              	for(int i = 0; i < vc[u].size(); i++)
              	{
              		int v = vc[u][i];
              		if(!dfn[v])
              		{
              			tarjan(v);
              			low[u] = min(low[u] , low[v]);
              		}
              		else if(vis[v])
              		{
              			low[u] = min(low[u] , low[v]);
              		}	
              	}
              	//强连通分量到头	
              	if(dfn[u] == low[u])
              	{
              		while(!st.empty())
              		{
              			v = st.top();
              			st.pop();
              			vis[v] = 0;
              			color[v] = u;//当前牛所处的强连通分量 
              			if(u == v) break;
              			a[u] += a[v];
              		}
              	}
              }
              
              void tupo()
              {
              	queue<int> q;
              	for(int i = 1; i <= n; i++)
              	{
              		if(color[i] == i && !in[i])
              		{
              			q.push(i);
              			ans[i] = a[i];
              		}
              	}
              	
              	while(!q.empty())
              	{
              		int top = q.front();
              		q.pop();
              		
              		for(int i = 0; i < newvc[top].size(); i++)
              		{
              			v = newvc[top][i];
              			ans[v] = max(ans[v] , ans[top] + a[v]);
              			in[v]--;
              			if(!in[v])
              				q.push(v);
              		}
              	}
              	
              	int maxx = 0;
              	for(int i = 1; i <= n; i++)
              		maxx = max(maxx , ans[i]);
              	cout << maxx;
              }
              
              int main(){
              	cin >> n >> m;
              	for(int i = 1; i <= n; i++)
              		cin >> a[i];
              	while( m-- )
              	{
              		cin >> u >> v;
              		vc[u].push_back(v); 
              	}
              	for(int i = 1; i <= n; i++)
              		if(!dfn[i])
              			tarjan(i);
              	
              	//重新建边
              	for(int i = 1; i <= n; i++)
              	{
              		for(int j = 0; j < vc[i].size(); j++)
              		{
              			v = vc[i][j];
              			if(color[i] != color[v])
              			{
              				newvc[color[i]].push_back(color[v]);
              				in[color[v]]++; 
              			}	
              		}	
              	} 
              	
              	tupo();
              	
              	return 0;
              
              • 0
                @ 2026-2-2 12:28:28
                #include<bits/stdc++.h>
                using namespace std;
                
                const int N=1e5+5;
                
                int n , m , a[N];
                int u , v;
                vector<int> vc[N];
                int dfn[N] , low[N] , cnt;
                bool vis[N];
                stack<int> st;
                int belong_cnt; //强连通分量个数 
                vector<int> belong[N];//强连通分量 
                int color[N];//color[i]表示第i头牛所处的强连通分量  
                vector<int> newvc[N];
                int in[N];//入度 
                int ans[N];
                void tarjan(int u)
                {
                	dfn[u] = low[u] = ++cnt;
                	vis[u] = 1;
                	st.push(u);
                	for(int i = 0; i < vc[u].size(); i++)
                	{
                		int v = vc[u][i];
                		if(!dfn[v])
                		{
                			tarjan(v);
                			low[u] = min(low[u] , low[v]);
                		}
                		else if(vis[v])
                		{
                			low[u] = min(low[u] , low[v]);
                		}	
                	}
                	//强连通分量到头	
                	if(dfn[u] == low[u])
                	{
                		while(!st.empty())
                		{
                			v = st.top();
                			st.pop();
                			vis[v] = 0;
                			color[v] = u;//当前牛所处的强连通分量 
                			if(u == v) break;
                			a[u] += a[v];
                		}
                	}
                }
                
                void tupo()
                {
                	queue<int> q;
                	for(int i = 1; i <= n; i++)
                	{
                		if(color[i] == i && !in[i])
                		{
                			q.push(i);
                			ans[i] = a[i];
                		}
                	}
                	
                	while(!q.empty())
                	{
                		int top = q.front();
                		q.pop();
                		
                		for(int i = 0; i < newvc[top].size(); i++)
                		{
                			v = newvc[top][i];
                			ans[v] = max(ans[v] , ans[top] + a[v]);
                			in[v]--;
                			if(!in[v])
                				q.push(v);
                		}
                	}
                	
                	int maxx = 0;
                	for(int i = 1; i <= n; i++)
                		maxx = max(maxx , ans[i]);
                	cout << maxx;
                }
                
                int main(){
                	cin >> n >> m;
                	for(int i = 1; i <= n; i++)
                		cin >> a[i];
                	while( m-- )
                	{
                		cin >> u >> v;
                		vc[u].push_back(v); 
                	}
                	for(int i = 1; i <= n; i++)
                		if(!dfn[i])
                			tarjan(i);
                	
                	//重新建边
                	for(int i = 1; i <= n; i++)
                	{
                		for(int j = 0; j < vc[i].size(); j++)
                		{
                			v = vc[i][j];
                			if(color[i] != color[v])
                			{
                				newvc[color[i]].push_back(color[v]);
                				in[color[v]]++; 
                			}	
                		}	
                	} 
                	
                	tupo();
                	
                	return 0;
                
                • 0
                  @ 2026-2-1 11:31:04

                  http://ybt.ssoier.cn:8088/problem_show.php?pid=1510

                  #include <bits/stdc++.h>
                  using namespace std;
                  const int N = 1e5 + 10;
                  const int INF = 0x3f3f3f3f;
                  
                  int T;
                  int r[30];//r[i]表示第i个时间点需要工作的人数 
                  int n;
                  int num[30] , x;//num[i]表示第i个时间点有多少人开始工作 
                  int L , R , ans; 
                  vector<pair<int,int> > vc[N];
                  int dis[N];
                  bool vis[N];
                  queue<int> q;
                  void spfa(int mid)//最长路 
                  {
                  	memset(dis, -INF , sizeof(dis));
                  	memset(vis , 0 , sizeof(vis));
                  	while(!q.empty()) q.pop();
                  	dis[0] = 0;
                  	vis[0] = 1;
                  	
                  	q.push(0);
                  	
                  	while(!q.empty())
                  	{
                  		int u = q.front();
                  		q.pop();
                  		if( u == 24 && dis[u] > mid)
                  			return;
                  		
                  		vis[u] = 0;
                  		for(int i = 0; i < vc[u].size(); i++)
                  		{
                  			int v = vc[u][i].first , w = vc[u][i].second;
                  			if(dis[v] < dis[u] + w)
                  			{
                  				dis[v] = dis[u] +w;
                  				if(!vis[v]) 
                  				{
                  					q.push(v);	
                  					vis[v] = 1;
                  				}
                  			}	
                  		} 
                  	}
                  }
                  
                  bool check(int mid)//一共mid人工作 
                  {
                  	for(int i = 0; i <= 24; i++)
                  	{
                  		vc[i].clear();	
                  	}
                  	
                  	//隐藏不等式
                  	//sum[i] 从1点到i点需要工作的人数
                  	//	sum[i] - sum[i - 1] >= 0
                  	//	sum[i - 1] - sum[i] >= -num[i]
                  	for(int i = 1; i <= 24; i++)
                  	{
                  		vc[i - 1].push_back({i , 0});
                  		vc[i].push_back({i - 1 ,-num[i]});	
                  	} 
                  //	23 24 1 2 3 4 5 6 7 8 9
                  //	sum[i] - sum[i - 8] >= r[i]
                  	for(int i = 8; i <= 24; i++)
                  		vc[i - 8].push_back({i , r[i]});
                  	
                  //	sum[24] - sum[8] <= mid - r[i]; 
                  //	sum[i] - sum[i + 16] >= r[i] - mid;
                  	for(int i = 1; i <= 8; i++)
                  		vc[i + 16].push_back({i , r[i] - mid});
                  		
                  //	sum[24] - sum[0] <= mid
                  	vc[0].push_back({24,mid});
                  	vc[24].push_back({0, -mid});
                  	
                  	spfa(mid);
                  	return dis[24] == mid;
                  }
                  
                  int main()
                  {
                  	cin >> T;
                  	while( T-- )
                  	{
                  		memset(num , 0 , sizeof(num));
                  		for(int i = 1; i <= 24; i++)
                  			cin >> r[i];
                  			
                  		cin >> n;
                  		//表示每个人开始工作的时间 
                  		for(int i = 1; i <= n; i++)
                  		{
                  			cin >> x;
                  			num[x + 1]++;
                  		}
                  		//二分答案 
                  		L = 0 , R = n , ans = -1;
                  		while( L <= R)
                  		{
                  			int mid = L + R >> 1;
                  			if(check(mid))
                  			{
                  				ans = mid;
                  				R = mid - 1;
                  			}
                  			else
                  				L = mid + 1;
                  		}
                  		
                  		if(ans == -1)
                  			cout << "No Solution\n";
                  		else
                  			cout << ans << endl;
                  	}
                  
                  	return 0;
                  }
                  
                  
                  • 0
                    @ 2026-2-1 10:09:16

                    http://ybt.ssoier.cn:8088/problem_show.php?pid=1509

                    #include <bits/stdc++.h>
                    using namespace std;
                    const int N = 5e4 + 10;
                    const int INF = 0x3f3f3f3f;
                    
                    int n;
                    int u , v , w , maxx;
                    vector<pair<int,int> > vc[N];
                    int dis[N];
                    bool vis[N];
                    void spfa()//求最长路!!! 
                    {
                    	memset(dis, -INF, sizeof(dis));
                    	dis[0] = 0;
                    	vis[0] = 1;//表示当前点是否在队列中 
                    	queue<int> q;
                    	q.push(0);
                    	
                    	while(!q.empty())
                    	{
                    		int u = q.front();
                    		q.pop();
                    		vis[u] = 0;
                    		for(int i = 0; i < vc[u].size(); i++)
                    		{
                    			int v = vc[u][i].first , w = vc[u][i].second;
                    			if(dis[v] < dis[u] + w)
                    			{
                    				dis[v] = dis[u] +w;
                    				if(!vis[v]) 
                    				{
                    					q.push(v);	
                    					vis[v] = 1;
                    				}
                    			}	
                    		} 
                    	}
                    }
                    
                    int main()
                    {
                    	cin >> n;
                    	for(int i = 1; i <= n; i++)
                    	{
                    		cin >> u >> v >> w;
                    		u++ , v++;//整体右移 
                    		//sum[v] - sum[u - 1] >= w
                    		vc[u - 1].push_back({v , w});
                    		maxx = max(maxx , v);
                    	}
                    	
                    	//隐藏不等式 sum[i] - sum[i - 1] >= 0     sum[i - 1] - sum[i] >= -1
                    	for(int i = 1; i <= maxx; i++)
                    	{
                    		vc[i - 1].push_back({i , 0});	
                    		vc[i].push_back({i - 1, -1});	
                    	} 
                    	spfa();
                    	cout << dis[maxx];
                    	return 0;
                    }
                    
                    
                    • 0
                      @ 2026-1-31 8:59:47

                      1行。

                      int main() { int a,b; __builtin_scanf("%d%d",&a,&b); __builtin_prinf("%d",a+b);
                      
                      • 0
                        @ 2025-12-28 18:10:49

                        #include<bits/stdc++.h> using namespace std; const int N=1e3+10; int a,b; int main() { cin >> a >> b; cout << a+b; return 0; }

                        • 0
                          @ 2025-12-21 20:11:01

                          #include using namespace std; int main() { int a,b; cin>>a>>b; cout<<a+b; }

                          • 0
                            @ 2025-12-21 20:09:08

                            #include using namespace std; int main() { int a,b; cin>>a>>b; cout<<a+b;

                            }

                            • 0
                              @ 2025-12-14 12:27:47
                              #include <iostream>
                              using namespace std;
                              int main()
                              {
                              	int a,b;
                              	cin>>a>>b;
                              	cout<<a+b;
                              	return 0;
                              }
                              
                              • 0
                                @ 2025-12-13 19:56:30

                                #include using namespace std; int main() { int a , b;

                                cin>>a>>b;
                                
                                cout<<a+b;
                                
                                return 0;	
                                

                                }

                                • -1
                                  @ 2025-8-18 11:23:58

                                  谁不会这道题??

                                  #include<bits/stdc++.h>
                                  using namespace std;
                                  int main(){
                                      int a,b;
                                      cin>>a>>b;
                                      cout<<a+b;
                                      return 0;
                                  }
                                  
                                  

                                  其实是我不会

                                  禁止发疯!!!

                                  • -2
                                    @ 2025-11-22 9:39:27

                                    #include<bits/stdc++.h> using namespace std; const int N=1e3+10; int fx(int x,int y){ return x+y; } int main() { int a=1,b=2; cin>>a>>b; cout<<fx(a,b); return 0; }

                                  • -2
                                    @ 2025-11-22 9:38:05

                                    #include<bits/stdc++.h> using namespace std; const int N=1e3+10; int fx(int x,int y){ return x+y; } int main() { int a=1,b=2; cin>>a>>b; cout<<fx(a,b); return 0; }

                                    • -2
                                      @ 2025-11-9 19:01:11

                                      #include <stdio.h> #include using namespace std; int main() { int a,b; cin >> a >> b; cout << a+b << endl; }

                                      • -2
                                        @ 2025-10-25 9:34:12
                                        #include<iostream>
                                        using namespace std;
                                        int main(){
                                            int a,b;
                                            cin>>a>>b;
                                            cout<<a+b;
                                        return 0;
                                        }
                                        

                                        信息

                                        ID
                                        1
                                        时间
                                        1000ms
                                        内存
                                        128MiB
                                        难度
                                        1
                                        标签
                                        递交数
                                        4986
                                        已通过
                                        1406
                                        上传者