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

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

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

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

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

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

448 条评论

  • @ 2025-1-25 22:21:43

    @renmafan ##首页点击自己头像,题库-我创建的题目,点"创建题目"即可

    • @ 2025-1-25 22:16:24

      @ emmm……

    • @ 2025-1-24 15:22:12

      图的及本代码(有点偷懒...^_^)2:

      #include<bits/stdc++.h>
      #define int long long
      using namespace std;
      vector<int>t[10];
      bool v[10];
      void d(int p){
      	cout<<char(p+'A');
      	for(int i=0;i<t[p].size();i++){
      		if(v[t[p][i]]==0){
      			v[t[p][i]]=1;
      			d(t[p][i]);
      		}
      	}
      }
      queue <int>q;
      void b(int p){
      	q.push(p);
      	v[p]=1;
      	while(!q.empty()){
      		p=q.front();
      		cout<<char(p+'A');
      		q.pop();
      		for(int i=0;i<t[p].size();i++){
      			if(v[t[p][i]]==0){
      				v[t[p][i]]=1;
      				q.push(t[p][i]);
      			}
      		}
      	}
      }
      signed main(){
      	t[0].push_back(1);
      	t[1].push_back(0);
      	t[1].push_back(2);
      	t[1].push_back(4);
      	t[2].push_back(1);
      	t[2].push_back(3);
      	t[3].push_back(2);
      	t[4].push_back(1);
      	t[4].push_back(5);
      	t[5].push_back(4);
      	char s;
      	cin>>s;
      	v[s-'A']=1;
      	cout<<"d:";
      	d(s-'A');
      	for(int i=0;i<6;i++){
      		v[i]=0;
      	}
      	cout<<endl;
      	cout<<"b:";
      	b(s-'A');
      	return 0;
      }
      
      
      • @ 2025-1-24 14:48:48

        图的及本代码(有点偷懒...^_^):

        #include<bits/stdc++.h>
        #define int long long
        using namespace std;
        int g[10][10]={
        	{0,1,0,0,0,0},
        	{1,0,1,0,1,0},
        	{0,1,0,1,0,0},
        	{0,0,1,0,0,0},
        	{0,1,0,0,0,1},
        	{0,0,0,0,1,0},
        };
        bool v[10];
        void d(int p){
        	cout<<char(p+'A');
        	for(int i=0;i<6;i++){
        		if(g[p][i]==1&&v[i]==0){
        			v[i]=1;
        			d(i);
        		}
        	}
        }
        queue <int>q;
        void b(int p){
        	q.push(p);
        	v[p]=1;
        	while(!q.empty()){
        		p=q.front();
        		cout<<char(p+'A');
        		q.pop();
        		for(int j=0;j<6;j++){
        			if(g[p][j]==1&&v[j]==0){
        				v[j]=1;
        				q.push(j);
        			}
        		}
        	}
        }
        signed main(){
        	char s;
        	cin>>s;
        	v[s-'A']=1;
        	cout<<"d:";
        	d(s-'A');
        	cout<<endl;
        	for(int i=0;i<6;i++){
        		v[i]=0;
        	}
        	cout<<"b:";
        	b(s-'A');
        	return 0;
        }
        
        
      • @ 2025-1-24 14:14:54

        洛谷题目

        本人原创

        自制样例

        自己写过标程,全部ACAC

        至于为什么我只做了5道题,因为我懒的做了时间不多

        要样例的,洛谷联系我

        题目:

        U527998 普及-

        U527911 普及-

        U528115 普及-

        U528927 入门

        U528932 入门

      • @ 2025-1-23 22:00:58
        • @ 2025-1-23 8:40:28
          #include<bits/stdc++.h>
          #define fi first
          #define se second
          using namespace std;
          typedef long long ll;
          const ll MX = 0;
          const ll P1 = 131LL;
          const ll P2 = 151LL;
          const ll P3 = 1331LL;
          const ll mod1 = 1e9 + 7;
          const ll mod2 = 998244353;
          namespace INT
          {
          	struct lll
          	{
          		int a[5010];
          	};
          	lll string_lll(string s)
          	{
          		lll res;
          		res.a[0] = s.size();
          		for(int i = 0; i < s.size(); i++)
          			res.a[res.a[0] - i] = s[i] - '0';
          		return res;
          	}
          	void operator <<(ostream &os, lll x)
          	{
          		for(int i = x.a[0]; i >= 1; i--)
          		{
          			os << x.a[i];
          		}
          	}
          	void operator >>(istream &is, lll &x)
          	{
          		string s;
          		is >> s;
          		x.a[0] = s.size();
          		for(int i = 0; i < s.size(); i++)
          			x.a[x.a[0] - i] = s[i] - '0';
          	}
          	lll operator +(lll a, lll b)
          	{
          		lll c;
          		memset(c.a, 0, sizeof c.a);
          		c.a[0] = max(a.a[0], b.a[0]) + 1;
          		for(int i = 1; i <= max(a.a[0], b.a[0]); i++)
          		{
          			c.a[i] += a.a[i] + b.a[i];
          			if(c.a[i] >= 10)
          				c.a[i] -= 10, c.a[i + 1] = 1;
          		}
          		while(c.a[c.a[0]] == 0 && c.a[0] != 1)
          			c.a[0]--;
          		return c;
          	}
          }
          using namespace INT;
          lll pi[1010];
          int main()
          {
          	ios::sync_with_stdio(0);
          	cin.tie(0);
          	cout.tie(0);
          	pi[2] = pi[1] = string_lll("1");
          	for(int i = 3; i <= 1000; i++)
          		pi[i] = pi[i - 1] + pi[i - 2];
          	int n, x;
          	cin >> n;
          	while(n--)
          	{
          		cin >> x;
          		cout << pi[x];
          		cout << '\n';
          	}
          	return 0;
          }
          
          
          • @ 2025-1-22 22:26:36

            【比赛公告】

            不好意思,又得延期了qwq

            T1测完啦!

            T2数据马上做完啦!

            T3数据马上做完啦!

            T4数据马上做完啦!

            1月25日没开赛的话每人送两瓶可乐!!!

          • @ 2025-1-22 16:18:08

            我的P1435怎么RE了?????????????

            #include <bits/stdc++.h>
            #define ll long long
            using namespace std;
            string s1,s2;
            int siz,dp[5010][5010];
            int main()
            {
            	ios::sync_with_stdio(false);
            	cin.tie(0);
            	cin >> s1;
            	siz = (int)s1.size();
            	s1 = " " + s1;
            	for (int i = 1;i <= siz;i++)
            		s2[i] = s1[siz - i + 1];
            	for (int i = 1;i <= siz;i++)
            		dp[i][i] = 0;
            	for(int i = 1; i<=siz; i++)
                    for(int j = 1; j <= siz; j++)
                        if(s1[i] == s2[j])
                            dp[i][j] = dp[i-1][j-1] + 1;
                        else
                            dp[i][j] = max(dp[i-1][j], dp[i][j-1]);
                cout << siz - dp[siz][siz];
            	return 0;
            }
            

            @ TooY0ung

            • @ 2025-1-22 16:23:28

              s2是字符串动态内存,你搁哪当字符数组直接赋值属于未定义

              s2[i] = s1[siz - i + 1];\tos2 += s1[siz - i + 1];

            • @ 2025-1-22 16:27:32

              @李睿舟 改完就成了60WA!!

              #include <bits/stdc++.h>
              #define ll long long
              using namespace std;
              string s1,s2;
              int siz,dp[5010][5010];
              int main()
              {
              	ios::sync_with_stdio(false);
              	cin.tie(0);
              	cin >> s1;
              	siz = (int)s1.size();
              	s1 = " " + s1;
              	for (int i = 1;i <= siz;i++)
              		s2 += s1[siz - i + 1];
              	for (int i = 1;i <= siz;i++)
              		dp[i][i] = 0;
              	for(int i = 1; i<=siz; i++)
                      for(int j = 1; j <= siz; j++)
                          if(s1[i] == s2[j])
                              dp[i][j] = dp[i-1][j-1] + 1;
                          else
                              dp[i][j] = max(dp[i-1][j], dp[i][j-1]);
                  cout << siz - dp[siz][siz];
              	return 0;
              }
              
            • @ 2025-1-22 16:33:16

              您的s2下标是 0siz10 \sim siz-1

          • @ 2025-1-22 12:35:20
            • @ 2025-1-22 14:39:48

              还不如此题

            • @ 2025-1-22 14:40:07

              好玩就是不好写

            • @ 2025-1-22 14:40:22

              一道超大模拟

            • 我觉得还是先数数Z和数数L吧

            • @ 2025-1-23 10:16:22

              @ 说得对

            • @ 2025-1-26 12:57:34

              @

              #include<bits/stdc++.h>
              using namespace std;
              const bool diff[3][3]={{0,0,1},{0,0,1},{1,1,0}};
              const int M=2005;
              int n,m,fanzhu,deadfan,rounds,tmp[M],used[M]; char ch,cu;
              struct PIGS {int iden,bloods,perfo,dead,nxt,equip,cnt; char cards[M];}a[15];
              deque <char> cards_pile;
              void _file() {
                  freopen("pigs.in","r",stdin);
                  freopen("pigs.out","w",stdout);
              }
              inline char read() {
                  ch=getchar();
                  while (ch<'A'||ch>'Z') ch=getchar();
                  return ch;
              }
              void _init() {
                  scanf("%d%d",&n,&m),fanzhu=deadfan=0;
                  for (int i=1,las=0; i<=n; i++) {
                      a[i].bloods=a[i].cnt=4,a[i].dead=a[i].perfo=a[i].equip=0,a[i].nxt=i%n+1;
                      cu=read(),fanzhu+=(cu=='F'),a[i].iden=(cu!='F')?((cu!='Z')?0:1):2,cu=read();
                      for (int j=1; j<=4; j++) a[i].cards[j]=read();
                  }
                  a[1].perfo=1;
                  for (int i=1; i<=m; i++) cards_pile.push_back(read());
              }
              void get_cards(int cur) {
                  a[cur].cards[++a[cur].cnt]=cards_pile.front();
                  if (cards_pile.size()>1) cards_pile.pop_front();
              }
              bool ought(int cur) {
                  int nxt=a[cur].nxt;
                  if (a[nxt].perfo==0) return 0; else
                  if (a[nxt].perfo==1) return diff[a[cur].iden][a[nxt].iden];
                  else return a[cur].iden==0;
              }
              int atk(int cur) {
                  if (a[cur].iden==2) return 1;
                  for (int nxt=a[cur].nxt; nxt!=cur; nxt=a[nxt].nxt) if (!a[nxt].dead)
                      if ((a[nxt].iden==2&&a[nxt].perfo==1)||(a[cur].iden==0&&a[nxt].perfo==-1)) return nxt;
                  return -1;
              }
              void pend(int x,int y) {
                  if (a[x].iden==0&&a[y].iden==1) {
                      for (int i=1; i<=a[x].cnt; i++) used[i]=rounds; a[x].equip=0;
                  }
                  else if (a[y].iden==2) get_cards(x),get_cards(x),get_cards(x);
              }
              int find(int cur,char aim) {
                  for (int i=1; i<=a[cur].cnt; i++) if (a[cur].cards[i]==aim) return i;
                  return 0;
              }
              void adjust(int cur,int s,int t) {
                  for (int i=s; i<t; i++) a[cur].cards[i]=a[cur].cards[i+1];
              }
              void respond_peach(int cur,int user) {
                  int re=find(cur,'P');
                  if (cur==user) {
                      re=0;
                      for (int i=1; i<=a[cur].cnt; i++) if (used[i]!=rounds&&a[cur].cards[i]=='P') {re=i; break;}
                      if (re) used[re]=rounds,a[cur].bloods++;
                      return;
                  }
                  if (re) a[cur].bloods++,adjust(cur,re,a[cur].cnt),a[cur].cnt--;
              }
              bool respond_dodge(int cur) {
                  int re=find(cur,'D');
                  if (re) adjust(cur,re,a[cur].cnt),a[cur].cnt--;
                  return re;
              }
              bool respond_kill(int cur,int user) {
                  int re=find(cur,'K');
                  if (cur==user) {
                      re=0;
                      for (int i=1; i<=a[cur].cnt; i++) if (used[i]!=rounds&&a[cur].cards[i]=='K') {re=i; break;}
                      if (re) used[re]=rounds;
                      return re;
                  }
                  if (re) adjust(cur,re,a[cur].cnt),a[cur].cnt--;
                  return re;
              }
              bool respond_wuxie(int cur,int user) {
                  int re=find(cur,'J');
                  if (cur==user) {
                      re=0;
                      for (int i=1; i<=a[cur].cnt; i++) if (used[i]!=rounds&&a[cur].cards[i]=='J') {re=i; break;}
                      if (re) used[re]=rounds;
                      return re;
                  }
                  if (re) adjust(cur,re,a[cur].cnt),a[cur].cnt--;
                  return re;
              }
              void lose_blood(int cur,int user) {
                  a[cur].bloods--; if (a[cur].bloods<1) respond_peach(cur,user);
              }
              void change_link(int cur) {
                  for (int pre=1; pre<=n; pre++)
                      if (!a[pre].dead&&a[pre].nxt==cur) {a[pre].nxt=a[cur].nxt; break;}
              }
              void do_peach(int cur) {
                  a[cur].bloods++;
              }
              void do_kill(int cur) {
                  int nxt=a[cur].nxt;
                  a[cur].perfo=1;
                  if (!respond_dodge(nxt)) {
                      lose_blood(nxt,cur);
                      if (a[nxt].bloods<1) deadfan+=(a[nxt].iden==2),a[nxt].dead=1,a[cur].nxt=a[nxt].nxt;
                      if (fanzhu==deadfan||a[1].dead) return;
                      if (a[nxt].bloods<1) pend(cur,nxt);
                  }
              }
              bool do_wuxie(int user,int cur,int aim,int now) {
                  bool ret=now;
                  for (int nxt=cur; ; ) if (!a[nxt].dead) {
                      if (!now) {
                          if (!diff[a[nxt].iden][a[aim].iden])
                              if (respond_wuxie(nxt,user)) {a[nxt].perfo=1; return do_wuxie(user,nxt,aim,1-now);}
                      }else {
                          if (diff[a[nxt].iden][a[aim].iden])
                              if (respond_wuxie(nxt,user)) {a[nxt].perfo=1; return do_wuxie(user,nxt,aim,1-now);}
                      }
                      nxt=a[nxt].nxt; if (nxt==cur) break;
                  }
                  return ret;
              }
              void do_fight(int cur,int aim,int user) {
                  a[cur].perfo=1;
                  if (a[aim].perfo==1) {
                      if (do_wuxie(cur,cur,aim,0)) return;
                  }
                  for (; ;) {
                      if (a[cur].iden==0&&a[aim].iden==1) {
                          lose_blood(aim,user);
                          if (a[aim].bloods<1) deadfan+=(a[aim].iden==2),a[aim].dead=1,change_link(aim);
                          if (fanzhu==deadfan||a[1].dead) return;
                          if (a[aim].bloods<1) pend(cur,aim);
                          return;
                      }else
                      if (!respond_kill(aim,user)) {
                          lose_blood(aim,user);
                          if (a[aim].bloods<1) deadfan+=(a[aim].iden==2),a[aim].dead=1,change_link(aim);
                          if (fanzhu==deadfan||a[1].dead) return;
                          if (a[aim].bloods<1) pend(cur,aim);
                          return;
                      }
                      if (!respond_kill(cur,user)) {
                          lose_blood(cur,user);
                          if (a[cur].bloods<1) deadfan+=(a[cur].iden==2),a[cur].dead=1,change_link(cur);
                          if (fanzhu==deadfan||a[1].dead) return;
                          if (a[cur].bloods<1) pend(aim,cur);
                          return;
                      }
                  }
              }
              void do_nanzhu(int cur) {
                  for (int nxt=a[cur].nxt; nxt!=cur; nxt=a[nxt].nxt) if (!a[nxt].dead) {
                      if (a[nxt].perfo==1) {
                          if (do_wuxie(cur,cur,nxt,0)) continue;
                      }
                      if (!respond_kill(nxt,cur)) {
                          lose_blood(nxt,cur); if (nxt==1&&a[cur].perfo==0) a[cur].perfo=-1;
                          if (a[nxt].bloods<1) deadfan+=(a[nxt].iden==2),a[nxt].dead=1,change_link(nxt);
                          if (fanzhu==deadfan||a[1].dead) return;
                          if (a[nxt].bloods<1) pend(cur,nxt);
                      }
                  }
              }
              void do_wanjian(int cur) {
                  for (int nxt=a[cur].nxt; nxt!=cur; nxt=a[nxt].nxt) if (!a[nxt].dead) {
                      if (a[nxt].perfo==1) {
                          if (do_wuxie(cur,cur,nxt,0)) continue;
                      }
                      if (!respond_dodge(nxt)) {
                          lose_blood(nxt,cur); if (nxt==1&&a[cur].perfo==0) a[cur].perfo=-1;
                          if (a[nxt].bloods<1) deadfan+=(a[nxt].iden==2),a[nxt].dead=1,change_link(nxt);
                          if (fanzhu==deadfan||a[1].dead) return;
                          if (a[nxt].bloods<1) pend(cur,nxt);
                      }
                  }
              }
              void do_zhuge(int cur) {
                  a[cur].equip=1;
              }
              bool dis_cards(int cur) {
                  memset(used,0,sizeof used);
                  int i,cntused,totkill=0,counts,ret=-1,aim; char now;
                  for (rounds=1; ; rounds++) {
                      cntused=counts=0;
                      for (i=1; i<=a[cur].cnt; i++) if (used[i]!=rounds) {
                          now=a[cur].cards[i];
                          switch (now) {
                              case 'P':
                                  if (a[cur].bloods<4) do_peach(cur),used[i]=rounds,cntused++,i=a[cur].cnt;
                                  break;
                              case 'K':
                                  if ((!totkill||a[cur].equip)&&ought(cur)) do_kill(cur),used[i]=rounds,cntused++,totkill++,i=a[cur].cnt;
                                  break;
                              case 'F':
                                  aim=atk(cur); if (aim!=-1) do_fight(cur,aim,cur),used[i]=rounds,cntused++,i=a[cur].cnt;
                                  break;
                              case 'N':
                                  do_nanzhu(cur),used[i]=rounds,cntused++,i=a[cur].cnt;
                                  break;
                              case 'W':
                                  do_wanjian(cur),used[i]=rounds,cntused++,i=a[cur].cnt;
                                  break;
                              case 'Z':
                                  do_zhuge(cur),used[i]=rounds,cntused++,i=a[cur].cnt;
                                  break;
                              default:
                                  break;
                          }
                          if (fanzhu==deadfan||a[1].dead) {ret=1; break;}
                          if (a[cur].dead) {ret=0; break;}
                      }
                      for (int i=1; i<=a[cur].cnt; i++) if (used[i]!=rounds) tmp[++counts]=a[cur].cards[i];
                      for (int i=1; i<=counts; i++) a[cur].cards[i]=tmp[i]; a[cur].cnt=counts;
                      if (!cntused&&ret!=1) ret=0;
                      if (ret>-1) return ret;
                  }
              }
              bool playing(int cur) {
                  get_cards(cur),get_cards(cur);
                  return dis_cards(cur);
              }
              void _duel() {
                  for (int i=1,event=0; !event&&fanzhu>0; i=a[i].nxt) if (!a[i].dead) event=playing(i);
              }
              void _print() {
                  printf("%s\n",a[1].dead?"FP":"MP");
                  for (int i=1; i<=n; i++) {
                      if (a[i].dead) printf("%s","DEAD"); else {
                          if (a[i].cnt>0) printf("%c",a[i].cards[1]);
                          for (int j=2; j<=a[i].cnt; j++) printf(" %c",a[i].cards[j]);
                      }
                      puts("");
                  }
              }
              int main() {
                  _init();
                  _duel();
                  _print();
                  return 0;
              }
              
          • @ 2025-1-22 12:00:09
          • @ 2025-1-21 19:51:48

            @你要上传不了把文件发我我来上传

            • @ 2025-1-21 19:52:29

              你上不了我的oj我来

          • @ 2025-1-21 16:24:47

            TooY0ungWA了!!!!! P189670Wrong AnsWer 载入史册*2!!!!!!!!!!!!!!!!!!!!!!

          • @ 2025-1-21 9:10:30

            @ @ 加进去了啊

          • @ 2025-1-20 18:29:40

            数数几个‘z'怎么做!!!

          • @ 2025-1-20 18:04:47

            爸爸不以

            • @ 2025-1-20 17:45:03

              oj又出BAG

            • @ 2025-1-19 20:49:42

              比赛公告

              由于数据出现大面积问题,导致第二题,第四题正解无法通过,所以比赛时间推迟至11232300:00:0000:00:00开始,结束时间顺延至22181800:00:0000:00:00

              带来的不便请您谅解!

              以下是更改后的比赛公告:

              各位参赛选手:

              本次比赛的正式规则现在公布:

              1.比赛赛制:IOI

              2.比赛时间: 2025.01.232025.01.23 00:00:0000:00:00~2025.02.182025.02.18 00:00:0000:00:00 内任选连续的1212小时完成比赛。

              3.比赛题目数:44

              4.比赛难度:略低于CSP-J(官方规定难度),覆盖语法~普及-

              5.比赛赛区:55个,见之前公告。

              6.允许炸鱼,不允许水问题,否则禁赛33个月

              7.祝大家过个好年!

              8.比赛期间管理每隔33~7272小时巡查一次

              在此发疯,收到回复MC++

            • @ 2025-1-19 15:48:26
              TooY0ungWA了

              P1717 80 WrongAnswer 载入史册

            • @ 2025-1-18 22:21:02

              oj怎么了,我真在打周赛打到剩一个小时了告诉我比赛结束了

            • @ 2025-1-18 21:16:41

              防止骗分为什么不用ICPC赛制

              而是最低分分值

              • @ 2025-1-18 20:10:38

                洛谷Div.4第5题怎么做

                • @ 2025-1-18 16:05:08

                  推道水蓝:P3847

                  超水的区间DP,非常适合当做中国OIer的第一道蓝题((

                • @ 2025-1-16 21:52:30

                  官方通告

                  各位参赛选手:

                  本次比赛的正式规则现在公布:

                  1.比赛赛制:IOI

                  2.比赛时间:2025.01.202025.01.20 00:00:0000:00:00~2025.02.152025.02.15 00:00:0000:00:00 内任选连续的1212小时完成比赛。

                  3.比赛题目数:44

                  4.比赛难度:略低于CSP-J(官方规定难度),覆盖语法~普及-

                  5.比赛赛区:55个,见之前公告。

                  6.允许炸鱼,不允许水问题,否则禁赛33个月

                  7.祝大家过个好年!

                  8.比赛期间管理每隔2424~7272小时巡查一次

                  在此发疯,收到回复MC++

                  • @ 2025-1-17 15:06:51

                    你会编题?

                  • @ 2025-1-17 15:07:43

                    我也有oj,你要用吗?

                  • @ 2025-1-17 23:58:58

                    @

                    不想加赛区了,难于管理

                    只能等下次的清明赛咯~

                  • @ 2025-1-19 9:06:20

                    @ 不是你还不上传题目

                  • @ 2025-1-19 9:06:58

                    @ 20号开始提前48小时上传题目

                  • @ 2025-1-19 20:57:41

                    @

                    开服务器!!!

                    改通知!!!!!!

                  • @ 2025-1-19 21:04:02

                    @ 一直开着呢

                  • @ 2025-1-21 10:20:18

                    @

                    ?

                  • @ 2025-1-21 10:21:13

                    @ 我没用https,换个浏览器

                  • @ 2025-1-21 10:21:47

                    @ 用自带的或着Google

                  • @ 2025-1-21 10:22:23

                    @

                  • @ 2025-1-21 11:26:30

                    @ w我可以协助管理吗

                  • @ 2025-1-21 12:19:34

                    @

                    洛谷的可以但是其他的不行

                  • @ 2025-1-21 12:24:51

                    @ why

                  • @ 2025-1-21 12:34:03

                    @ 我是MOD

                • @ 2025-1-15 22:23:33

                  所以Jaggerchan也是33DAI吗

                • @ 2025-1-15 21:06:17

                  oj

                • @ 2025-1-15 20:37:14

                  釜底抽薪也是是ABC206的弱化版。

                  难怪33DAI说釜底抽薪这题可以用并查集维护(

                  • @ 2025-1-15 15:12:01
                    • @ 2025-1-14 18:15:37

                      ##求助,有许多错误,怎么改?

                      #include<bits/stdc++.h>
                      
                      #include<algorithm>
                      //algorithm
                      #include <utility> // UK-300.
                      #include <bits/stl_algobase.h>
                      #include <bits/stl_algo.h>
                      
                      #include<iostream>
                      //iostream
                      #include <bits/c++config.h>
                      #include <ostream>
                      #include <istream>
                      
                      #include <windows.h>
                      //windous.h
                      #include <_mingw.h>
                      #include <sdkddkver.h>
                      
                      #include<stdio.h>
                      //stdio.h
                      #include <crtdefs.h>
                      #include <_mingw_print_push.h>
                      
                      #include<cstdio>
                      //cstdio
                      #include <bits/c++config.h>
                      #include <stdio.h>
                      
                      #include<cmath>
                      //cmath
                      #include <bits/c++config.h>
                      #include <bits/cpp_type_traits.h>
                      #include <ext/type_traits.h>
                      #include <math.h>
                      
                      #include<map>
                      //map
                      #include <bits/stl_tree.h>
                      #include <bits/stl_map.h>
                      #include <bits/stl_multimap.h>
                      #include <bits/range_access.h>
                      
                      using namespace std;
                      
                      map<int,int>jipaiqi;//记牌器 
                      map<int,int>fapaiqi;//发牌器 
                      
                      //抽牌 
                      int suijishu(int o){
                      	int e;
                      	while(true){
                      		e=rand()%14+1;
                      		if(e>0 || e<=14){
                      			return e;
                      		}  
                      	}
                      }
                      
                      int main(){
                      	int s;
                      	system("cls");//清屏
                      	srand(time(0));
                      	cout<<"欢迎来到poker之抽王八"<<endl;
                      	while(true){
                      		cout<<"游戏规则"<<endl;
                      		cout<<"1.自动分牌,若出现一对牌,则去除这对牌,还可以抽一次别人的牌"<<endl;
                      		cout<<"2.每人会抽取别人的牌,先没牌的胜利,谁最后手中只有王和八,则他成为王八"<<endl;
                      		cout<<"3.牌中的A=1,J=11,Q=12,K=13,joker=14"<<endl; 
                      		cout<<"看懂输个1,不懂输个2吧"<<endl;
                      		cin>>s;
                      		if(s==1){
                      			cout<<"好的"<<endl;
                      			Sleep(1500);
                      			system("cls");
                      			break;
                      		}
                      		if(s==2){
                      			cout<<"没关系"<<endl;
                      			Sleep(1500);
                      			system("cls");
                      		}
                      		else{
                      			cout<<"别乱输"<<endl;
                      			Sleep(1500);
                      			system("cls");
                      		}
                      	}
                      	system("cls");
                      	cout<<"请输入游玩人数!最多四人,最少两人"<<endl;
                      	int n;
                      	while(true){
                      		cin>>n;
                      		if(n>4 || n<2){
                      			cout<<"干啥呢?"<<endl;
                      			Sleep(1500);
                      			system("cls");
                      		}
                      		else{
                      			break;
                      		}
                      	}
                      	Sleep(1500);
                      	system("cls");
                      	cout<<"游戏开始"<<endl;
                      	string ming[5];
                      	int pai[5][105];  //pai[i][j] i号玩家 j张牌 
                      	int mei=52/n;
                      	if(true){
                      		for(int i=1;i<=n;i++){
                      			cout<<"请输入"<<i<<"号玩家姓名"<<endl;
                      			cin>>ming[i];
                      			Sleep(1500);
                      			cout<<"你好!"<<endl;
                      			Sleep(500);
                      			cout<<ming[i]<<endl;
                      			for(int j=1;j<=mei;j++){  //发牌工作 
                      				s=suijishu(14);
                      				if(fapaiqi[s]<=4){
                      					if(s=14){
                      						if(fapaiqi[14]==0){
                      							fapaiqi[s]++;
                      							pai[i][j]=s;
                      							jipaiqi[i]++;
                      						}
                      					}
                      					fapaiqi[s]++;
                      					pai[i][j]=s;
                      					jipaiqi[i]++;
                      				}
                      			}
                      			for(int l=1;l<=jipaiqi[i];l++){  //排序 
                      				for(int j=l+1;j<=jipaiqi[i];j++){
                      					if(pai[i][l]>pai[i][j]){
                      						swap(pai[i][l],pai[i][j]);
                      					}
                      				}
                      			}
                      			for(int j=jipaiqi[i];j>=1;j--){   //去重 
                      				if(pai[i][j]==pai[i][j-1]){
                      					pai[i][j]=0;
                      					pai[i][j-1]=0;
                      					for(int l=j-1;l<=jipaiqi[i]-2;l++){  //删除 
                      						pai[i][l]=pai[i][l+2];
                      					}
                      					jipaiqi[i]=jipaiqi[i]-2;
                      				}
                      			}
                      			Sleep(1500);
                      			system("cls");
                      			if(jipaiqi[i]<1){   //特判 
                      				i=i-1;
                      			}
                      		}
                      		cout<<"发牌结束"<<endl;
                      		Sleep(1500);
                      		system("cls");
                      		int c=1; 
                      		while(n>1){
                      			jipaiqi[0]=0;
                      			cout<<"第"<<c<<"回合"<<endl;
                      			for(int i=1;i<=n;i++){
                      				cout<<ming[i]<<"还剩"<<jipaiqi[i]<<"张牌"<<endl;
                      				jipaiqi[0]+=jipaiqi[i];
                      			}
                      			cout<<"总共还剩"<<jipaiqi[0]<<"张牌"<<endl;
                      			Sleep(1500);
                      			system("cls");
                      			for(int i=1;i<=n;i++){
                      				if(n==1){
                      					break;
                      				}
                      				if(jipaiqi[i]==0){
                      					continue;
                      				}
                      				cout<<"你的牌"<<endl;
                      				for(int j=1;j<=jipaiqi[i];j++){
                      					cout<<pai[i][j]<<" ";
                      				}
                      				cout<<ming[i]<<"请抽牌"<<endl;
                      				bool f=1;
                      				while(f=1){
                      					if(n==1){
                      						break;
                      					}
                      					if(jipaiqi[(i+1)%n]==0){
                      							n--;
                      							cout<<ming[(i+1)%n]<<"获得了胜利"<<endl;
                      							
                      							 
                      							for(int j=(i+1)%n;j<=n;j++){   //数据更新 
                      								ming[(i+1)%n]=ming[(i+1)%n+1];
                      								jipaiqi[j]=jipaiqi[(j+1)%n];
                      								for(int l=1;l<=jipaiqi[(i+1)%n+1];l++){
                      									pai[(i+1)%n][l]=pai[(i+1)%n+1][l];
                      								}
                      							}
                      					}
                      					while(true){
                      						
                      						cin>>s;
                      						if(s<=jipaiqi[(i+1)%n]){
                      							break;
                      						}
                      						else{
                      							cout<<"他只有"<<jipaiqi[(i+1)%n]<<"张牌"<<endl;
                      						}
                      					}
                      					cout<<"你抽到了"<<pai[(i+1)%n][s];
                      					int v=0;
                      					for(int j=jipaiqi[i];j>0;j--){   //查询我的牌放哪? 
                      						if(pai[(i+1)%n][s]<=pai[i][s]){
                      							v=j;
                      							break;
                      						}
                      					}
                      					for(int j=jipaiqi[i];j>v+1;j--){  //移位插入 
                      						pai[i][j+1]=pai[i][j];
                      					}
                      					pai[i][v+1]=pai[(i+1)%n][s]; //插入
                      					
                      					jipaiqi[i]++;
                      					jipaiqi[(i+1)%n]--;
                      					
                      					for(int j=s;j<=jipaiqi[(i+1)%n];j++){ //删除 
                      						pai[(i+1)%n][j]=pai[(i+1)%n][j+1];
                      					} 
                      					
                      					for(int j=jipaiqi[i];j>=1;j--){    //判断有无重牌
                      						if(pai[i][j]==pai[i][j-1]){
                      							
                      							pai[i][j]=0;
                      							pai[i][j-1]=0;
                      							for(int l=j-1;l<=jipaiqi[i]-2;l++){  //删除 
                      								pai[i][l]=pai[i][l+2];
                      							}
                      							jipaiqi[i]=jipaiqi[i]-2;
                      						}
                      						else{
                      							f=0;
                      						}
                      					 
                      					}
                      					
                      				}
                      			}
                      			
                      			cout<<"第"<<c<<"回合结束"<<endl;
                      			c++;
                      			Sleep(1500);
                      			system("cls");
                      		}
                      	}
                      	cout<<"哈哈!"<<ming[1]<<"是王八!";
                      	cout<<"游戏结束"<<endl;
                      	Sleep(1500);
                      	system("cls");
                      	cout<<"作者:zswdlqy"<<endl;
                      	Sleep(1500);
                      	cout<<"Wotojo   -std=c++14 -O2 -Wl,--stack=1073741824    https://oj.since2018.top/p/SOFTWARE       https://oj.since2018.top/file/2/DevCpp.pdf         https://oj.since2018.top/paste/show/0GbEg9NsE0AUkRwXLjSBAvVAQix7lYOw" <<endl;
                      	Sleep(1500);
                      	cout<<"HydroOJ 洛谷 AtCoder CodeForces"<<endl; 
                      	Sleep(1500);
                      	cout<<"评测队列 服务状态 兼容模式 主题 Worker 0, 45msPowered by Hydro v4.14.1 Community, Modified by 33DAI"<<endl;
                      	Sleep(1500);
                      	return 0;
                      }
                      
                    • @ 2025-1-14 16:48:13
                      #include <bits/stdc++.h>
                      #define ll long long
                      using namespace std;
                      int n;
                      double l;
                      ll a[300010];
                      bool cmp(int x,int y){
                      	return x>y;
                      }
                      int main()
                      {
                      	ios::sync_with_stdio(false);
                      	cin.tie(0);
                      	cin>>n;
                      	for(int i=1;i<=n;i++){
                      		cin>>a[i];
                      	}
                      	sort(a+1,a+n+1,cmp);
                      	double k=0,m=0;
                      	for(int i=1;i<=n;i++){
                      		l+=a[i];
                      		k=l/i*l;
                      		m=max(l,k);
                      	}
                      	cout<<setprecision(8)<<m;
                      	return 0;
                      }
                      
                      
                      • @ 2025-1-14 15:18:15

                        '''#include<bits/stdc++.h> using namespace std; int n,a[1010][1010],c[1010][2],l=1; long long s,d=-100; bool b; int main(){ cin>>n; for(int i=1;i<=n;i++) { for(int j=1;j<=n;j++) { cin>>a[i][j]; if(a[i][j]0) { b=1; c[l][0]=i; c[l][1]=j; l++; } } } if(b0) { printf("Bad Game!\n"); return 0; } for(int i=1;i<=l-1;i++) { for(int j=1;j<=n;j++) { s+=a[c[i][0]][j]; } for(int j=1;j<=n;j++) { s+=a[j][c[i][1]]; } if(s>d) { d=s; } s=0; } printf("%lld\n",d); return 0; }

                        • #include<bits/stdc++.h> using namespace std; int n,na,nb,x,y,xa[201],xb[201],i,j,a,ans,bns; int main(){

                          cin>>n>>na>>nb;
                          for(i=1;i<=na;i++){
                              cin>>x;
                              xa[i]=x;
                          }
                          for(j=1;j<=nb;j++){
                              cin>>y;
                              xb[j]=y;
                          }
                          for(a=1;a<=n;a++){
                              i++;
                              j++;
                              if(i>na)i=1;
                              if(j>nb)j=1;
                              if(xa[i]==0&&xb[j]==1)bns++;
                              if(xa[i]==0&&xb[j]==2)ans++;
                              if(xa[i]==0&&xb[j]==3)ans++;
                              if(xa[i]==0&&xb[j]==4)bns++;
                              if(xa[i]==1&&xb[j]==0)ans++;
                              if(xa[i]==1&&xb[j]==2)bns++;
                              if(xa[i]==1&&xb[j]==3)ans++;
                              if(xa[i]==1&&xb[j]==4)bns++;
                              if(xa[i]==2&&xb[j]==0)bns++;
                              if(xa[i]==2&&xb[j]==1)ans++;
                              if(xa[i]==2&&xb[j]==3)bns++;
                              if(xa[i]==2&&xb[j]==4)ans++;
                              if(xa[i]==3&&xb[j]==0)bns++;
                              if(xa[i]==3&&xb[j]==1)bns++;
                              if(xa[i]==3&&xb[j]==2)ans++;
                              if(xa[i]==3&&xb[j]==4)ans++;
                              if(xa[i]==4&&xb[j]==0)ans++;
                              if(xa[i]==4&&xb[j]==1)ans++;
                              if(xa[i]==4&&xb[j]==2)bns++;
                              if(xa[i]==4&&xb[j]==3)bns++;
                          }
                          cout<<ans<<" "<<bns;
                          return 0;
                          

                          }

                          • @ 2025-1-13 11:36:47

                            #include <bits/stdc++.h> using namespace std; int main(){ int orange,banana=1; cin>>orange; while(orange>1){ orange=orange/2; banana++; } cout<<banana; }

                            • @ 2025-1-12 19:24:40

                              每日一问

                              1 q:在哪里可以找到5*10^5只奶牛?
                              2 q: n^3的简称是什么?
                            • @ 2025-1-12 17:05:27
                              #include<bits/stdc++.h>
                              using namespace std;
                              struct stu{
                              	int ksj,jsj;
                              }a[9000010];
                              bool cmp(stu x,stu y)
                              {
                              	return x.jsj<y.jsj;
                              }
                              int main(){
                              	int n,cnt=1;
                              	cin>>n;
                              	for(int i=1;i<=n;i++)
                              	{
                              		cin>>a[i].ksj>>a[i].jsj;
                              	}
                              	sort(a+1,a+n+1,cmp);
                              	int t=a[1].jsj;
                              	for(int i=2;i<=n;i++)
                              	{
                              		if(t<=a[i].ksj)
                              		{
                              			cnt++;
                              			t=a[1].jsj;
                              		}
                              	}
                              	cout<<cnt;
                              	return 0;
                              }
                              
                            • @ 2025-1-12 16:10:15
                              #include <bits/stdc++.h>
                              using namespace std;
                              int n,s;
                              struct js{
                              	int b,l;
                              }a[1010];
                              double h;
                              bool cmp(js x,js y) {
                              	return x.l<y.l;
                              }
                              int main() {
                              	scanf("%d",&n);
                              	for(int i=1;i<=n;i++) {
                              		scanf("%d",&a[i].l);
                              		a[i].b=i;
                              	}
                              	sort(a+1,a+n+1,cmp);
                              	for(int i=1;i<=n;i++) {
                              		printf("%d ",a[i].b);
                              		s+=a[i].l*(n-i);
                              	}
                              	h=1.0*s/n;
                              	printf("\n%.2lf\n",h);
                              	return 0;
                              }
                              
                              
                              • @ 2025-1-12 16:08:05

                                #include <bits/stdc++.h> using namespace std; int n,s; struct js{ int b,l; }a[1010]; double h; bool cmp(js x,js y) { return x.l<y.l; } int main() { scanf("%d",&n); for(int i=1;i<=n;i++) { scanf("%d",&a[i].l); a[i].b=i; } sort(a+1,a+n+1,cmp); for(int i=1;i<=n;i++) { printf("%d ",a[i].b); s+=a[i].l*(n-i); } h=1.0*s/n; printf("\n%.2lf\n",h); return 0; }

                              • @ 2025-1-12 16:05:02

                                @564 A0009

                                #include <bits/stdc++.h>
                                using namespace std;
                                stack <int> s;
                                int main(){
                                	int n;
                                	cin>>n;
                                	for(int i=1;i<=n;i++)
                                	{
                                		int op,x;
                                		cin>>op>>x;
                                		if(op==1)
                                		{
                                			s.push(x);
                                		}
                                		if(op==2)
                                		{
                                			if(s.empty())
                                			{
                                				cout<<"-1"<<endl;
                                			}
                                		    else{
                                			    cout<<s.top()<<endl;
                                		    }
                                	    }
                                		if(op==3)
                                		{
                                			if(!s.empty())
                                			{
                                				s.pop();
                                			}
                                		}
                                	}
                                }
                                
                              • @ 2025-1-12 14:52:37

                                @ A0335 ~陶陶摘苹果(升级版)

                                #include<bits/stdc++.h>
                                using namespace std;
                                struct apple{
                                	int h,lq;
                                };
                                apple a[5100];
                                bool cmp(apple x,apple y){
                                	return x.lq<y.lq;
                                }
                                int n,s,cnt=0;
                                int b,c;
                                int main(){
                                	cin>>n>>s;
                                	cin>>b>>c;
                                	for(int i=1;i<=n;i++){
                                		cin>>a[i].h>>a[i].lq;
                                	}
                                	sort(a+1,a+n+1,cmp);
                                	for(int i=1;i<=n;i++){
                                		if(a[i].lq<=s&&a[i].h<=b+c){
                                			cnt++;
                                			s-=a[i].lq;
                                		}
                                	}
                                	cout<<cnt;
                                }
                                
                                • @ 2025-1-12 14:38:37
                                  • @ 2025-1-12 13:59:41

                                    【比赛通知】

                                    比赛的注意!

                                    在MC++hydro赛区参赛的加入点这里加入

                                    在洛谷赛区打比赛的看下面:

                                    在洛谷Lao_OJ管理域打比赛的点这里加入(就看你的运气如何了)

                                    在洛谷MC++域打比赛的点这里加入

                                    用户域得稍等一会

                                  • @ 2025-1-12 11:26:56

                                    666666

                                    • @ 2025-1-11 16:45:40

                                      [MC++的新春赛公告]

                                      比赛时间:1月20日00:00:00-2月15日00:00:00,共计26天,共6道题,你需要在这26天时间中抽12小时完成比赛(我不良心?)。

                                      比赛难度:延后通知。

                                      比赛赛区:本次比赛分为两个赛区,Luogu赛区和Hydro赛区,报名时间1月15日17:45:00-1月19日23:00:00(赛区同步)。

                                      比赛赛区具体点:Hydro共一个赛区:MC++域赛区 Luogu共两个赛区:Lao_OJ团队赛区和MC++团队赛区

                                      本次比赛为IOI赛制

                                      下一次公告时间:1月13日

                                      • @ 2025-1-11 22:13:50

                                        什么鬼

                                      • @ 2025-1-12 7:56:59

                                        啥玩意,你自己所做的题吗

                                      • @ 2025-1-12 7:58:31

                                        我的OJ可以借你用,网址是66zhang.cn

                                      • @ 2025-1-12 12:46:40

                                        @

                                        是的啊

                                        不然我让谁出题

                                      • @ 2025-1-12 15:02:17

                                        @ 你要用我的OJ吗

                                      • @ 2025-1-13 15:16:03

                                        @

                                        你的OJ应该可以吧

                                      • @ 2025-1-13 16:28:05

                                        @ 可以

                                      • @ 2025-1-13 16:29:23

                                        @ 你上去注册个账号然后把题面和数据发给我

                                      • @ 2025-1-14 8:52:46

                                        @

                                        你给我开个权限吧,被坑过,我自己就行了

                                      • @ 2025-1-14 9:37:26

                                        @ 好的

                                      • @ 2025-1-14 9:37:26

                                        @ 好的

                                      • @ 2025-1-14 9:37:26

                                        @ 好的

                                      • @ 2025-1-14 9:37:26

                                        @ 好的

                                      • @ 2025-1-14 9:37:26

                                        @ 好的

                                      • @ 2025-1-14 9:37:26

                                        @ 好的

                                      • @ 2025-1-14 9:37:26

                                        @ 好的

                                      • @ 2025-1-14 9:37:26

                                        @ 好的

                                      • @ 2025-1-14 9:38:49

                                        @

                                        我去,你发这么多消息?! 快去找@@

                                      • @ 2025-1-14 9:39:14

                                        @ 电脑卡了

                                      • @ 2025-1-14 9:39:31

                                        @ 你上我OJ说吧

                                      • @ 2025-1-14 9:39:56

                                        @

                                        OK

                                      • @ 2025-1-14 19:46:55

                                        @

                                        你把66zhang.cn的服务器关啦?

                                      • @ 2025-1-15 9:49:56

                                        @ 没问题,搞了个cdn加速

                                    • @ 2025-1-11 16:40:57

                                      “洛谷崩了”

                                      “服务器不存在或拥塞”