- 问答
【FAQ】问答&讨论贴
- 2024-8-29 16:06:46 @
不允许学生创建新讨论了,后面大家可以在这里讨论相关内容。
51 条评论
-
李睿舟 TLE自动机 LV 10 (4630/5630) @ 2024-9-20 0:08:55
P1406. 方格填数
这个代码只能得80分, 被卡了
#include<bits/stdc++.h> #define int long long using namespace std; int n; int a[50],sum; int g[10][10]; bool vis[1000]; bool check() { //先看行和列 for(int i=1;i<=n;i++) { int s=0; for(int j=1;j<=n;j++) { s+=g[i][j]; } if(s!=sum) { return 0; } } for(int i=1;i<=n;i++) { int s=0; for(int j=1;j<=n;j++) { s+=g[j][i]; } if(s!=sum) { return 0; } } //看对角线 int s=0; for(int i=1;i<=n;i++) { s+=g[i][i]; } if(s!=sum) { return 0; } s=0; for(int i=1;i<=n;i++) { s+=g[i][n-i+1]; } if(s!=sum) { return 0; } return 1; } void dfs(int x,int y) { if(x==n+1 && y==1) { if(!check()) { return; } //幻方成立 for(int i=1;i<=n;i++) { for(int j=1;j<=n;j++) { cout<<g[i][j]<<' '; } cout<<'\n'; } exit(0); } int xx=x; int yy=y+1; if(yy==n+1)//如果这行填满了 { /* int s=0; for(int i=1;i<=n;i++) { s+=g[x][i]; } if(s!=sum) { return; } */ yy=1; xx++; } for(int i=1;i<=n*n;i++) { if(vis[i]==1) { continue; } vis[i]=1; g[x][y]=a[i]; dfs(xx,yy); vis[i]=0; g[x][y]=0; } } signed main() { //freopen(".in","r",stdin); //freopen(".out","w",stdout); ios::sync_with_stdio(0); cin.tie(0); cin>>n; for(int i=1;i<=n*n;i++) { cin>>a[i]; sum+=a[i]; } sort(a+1,a+n*n+1); sum/=n; cout<<sum<<'\n'; dfs(1,1); return 0; }
然后剪枝好像写错了...
#include<bits/stdc++.h> #define int long long using namespace std; int n; int a[50],sum; int g[10][10]; bool vis[1000]; bool check() { //先看行和列 for(int i=1;i<=n;i++) { int s=0; for(int j=1;j<=n;j++) { s+=g[i][j]; } if(s!=sum) { return 0; } } for(int i=1;i<=n;i++) { int s=0; for(int j=1;j<=n;j++) { s+=g[j][i]; } if(s!=sum) { return 0; } } //看对角线 int s=0; for(int i=1;i<=n;i++) { s+=g[i][i]; } if(s!=sum) { return 0; } s=0; for(int i=1;i<=n;i++) { s+=g[i][n-i+1]; } if(s!=sum) { return 0; } return 1; } void dfs(int x,int y) { if(x==n+1 && y==1) { if(!check()) { return; } //幻方成立 for(int i=1;i<=n;i++) { for(int j=1;j<=n;j++) { cout<<g[i][j]<<' '; } cout<<'\n'; } exit(0); } int xx=x; int yy=y+1; if(yy==n+1)//如果这行填满了 { //--------------------------- int s=0; for(int i=1;i<=n;i++) { s+=g[x][i]; } if(s!=sum) { return; } //-------------------------- yy=1; xx++; } for(int i=1;i<=n*n;i++) { if(vis[i]==1) { continue; } vis[i]=1; g[x][y]=a[i]; dfs(xx,yy); vis[i]=0; g[x][y]=0; } } signed main() { //freopen(".in","r",stdin); //freopen(".out","w",stdout); ios::sync_with_stdio(0); cin.tie(0); cin>>n; for(int i=1;i<=n*n;i++) { cin>>a[i]; sum+=a[i]; } sort(a+1,a+n*n+1); sum/=n; cout<<sum<<'\n'; dfs(1,1); return 0; }
救我
-
2024-9-19 21:36:21@
满分是多少
-
2024-9-19 21:32:00@
杨博文真能抄...都十级了
-
2024-9-18 21:18:08@
主函数RE:
stack <char>a; string s; cin>>s; for(int i=0;i<s.size();i++){ if(s[i]=='('&&a.top()==')'){ a.pop(); } else if(s[i]=='['&&a.top()==']'){ a.pop(); } else{ a.push(s[i]); } } cout<<(!a.empty()?"OK":"Wrong");
-
2024-9-18 8:14:06@
-
2024-9-17 22:37:25@
Katex里下标咋打? a[1]
-
2024-9-17 18:32:03@
救我,为什么子任务2没分
#include<bits/stdc++.h> using namespace std; int a,b,c,d; int x,y,z; bool f=0; int main() { freopen("uqe.in","r",stdin); freopen("uqe.out","w",stdout); ios::sync_with_stdio(false); cin.tie(0); scanf("(%dx+%d)(%dx+%d)",&a,&b,&c,&d); //cout<<a<<' '<<b<<' '<<c<<' '<<d; if(a*c!=0) { x=a*c; if(a*c==1) { cout<<"x^2"; f=1; } else { cout<<a*c<<"x^2"; f=1; } } if(b*c+a*d!=0) { y=b*c+a*d; if(f) { cout<<'+'; } if(b*c+a*d==1) { cout<<"x"; } else { cout<<b*c+a*d<<"x"; } } if(b*d!=0) { z=b*d; if(f) { cout<<'+'; } cout<<b*d; } cout<<"\nNo"; return 0; }
-
2024-9-17 18:17:56@
-
2024-9-17 18:14:25@
这个分值有没有打反
-
2024-9-17 15:56:11@
help!!!模拟赛第一轮T4
using namespace std; int n,flag,summ,cnt=1,a[65]; string s[65],ans[65]; int vis[1005]; struct ST{ int sum,dir; }; vector<ST>G[65005]; priority_queue<int,vector<int>,greater<int>>q; void insert(){ int x=q.top(); q.pop(); int y=q.top(); q.pop(); G[x+y].push_back({x,0}); G[x+y].push_back({y,1}); q.push(x+y); return; } void dfs(int x){ if(G[x].size()==0){ cnt++; return; } for(int i=0;i<G[x].size();i++){ if(vis[G[x][i].sum]==0){ vis[G[x][i].sum]=1; char c=G[x][i].dir+'0'; ans[cnt]+=c; dfs(G[x][i].sum); vis[G[x][i].sum]=0; ans[cnt].pop_back(); } } } int main(){ // freopen("huffman.in","r",stdin); // freopen("huffman.out","w",stdout); cin>>n; for(int i=1;i<=n;i++){ cin>>a[i]; q.push(a[i]); summ+=a[i]; } for(int i=1;i<=n;i++)cin>>s[i]; for(int i=1;i<=n;i++){ for(int j=1;j<=n;j++){ if(i==j)continue; int len=min(s[i].size(),s[j].size()),flagg=0; for(int k=0;k<len;k++) if(s[i][k]!=s[j][k]){ flagg=1; break; } if(flagg==0){ flag=1; break; } } if(flag==1)break; } while(!q.empty())insert(); vis[summ]=1; dfs(summ); int anss=0,xxx=0; for(int i=1;i<=n;i++)anss+=a[i]*ans[i].size(); for(int i=1;i<=n;i++)xxx+=a[i]*s[i].size(); if(flag==1||anss!=xxx){ cout<<"No\n"; for(int i=1;i<=n;i++)cout<<ans[i]<<'\n'; }else{ cout<<"Yes\n"<<xxx; } return 0; }
-
2024-9-17 10:18:22@
为啥不对呢?
-
2024-9-16 22:13:57@
为什么自己发表的题解,讨论,回复不能删除
-
2024-9-16 10:32:23@
一道绝世好题:P1668
可用贪心、线段树优化dp、01bfs跑最短路三种优化写。 题解:https://www.luogu.com.cn/paste/sdm2wsf3
https://oj.since2018.top/p/P1668/solution
-
2024-9-16 0:20:55@
@33DAI,模拟赛4 T4输入有问题
-
2024-9-15 22:08:07@
模拟赛T4补充样例,复制DEV就未响应
-
2024-9-15 18:19:31@
求助 #P2199 最后的迷宫 11Tle 1Re
#include <bits/stdc++.h> #define ll long long #define ull unsigned long long #define float double using namespace std; struct trophy{int x,y;}; int n,m,xh,yh,xt,yt,vis[130][130]; int dsx[]={1,1,1,0,0,-1,-1,-1}; int dsy[]={-1,-1,-1,0,0,1,1,1}; int dx[]={-1,0,0,1}; int dy[]={0,-1,1,0}; char a[130][130],aa[130][130]; queue<trophy>q; int main(){ ios::sync_with_stdio(false); cin.tie(0); cin>>n>>m; for(int i=1;i<=n;i++) for(int j=1;j<=m;j++) cin>>a[i][j]; for(int i=1;i<=n;i++) for(int j=1;j<=m;j++) aa[i][j]=a[i][j]; while(cin>>xt>>yt>>xh>>yh){ bool flag=0; memset(vis,-1,sizeof(vis)); for(int i=1;i<=n;i++) for(int j=1;j<=m;j++) a[i][j]=aa[i][j]; for(int i=0;i<8;i++){ int xx=xt+dsx[i],yy=yt+dsy[i]; while(xx>=1 && xx<=n && yy>=1 && yy<=m && a[xx][yy]!='X'){ a[xx][yy]='F'; xx+=dsx[i];yy+=dsy[i]; } } q.push({xh,yh}); while(!q.empty()){ trophy now=q.front();q.pop(); if(a[now.x][now.y]=='F'){ cout<<vis[now.x][now.y]<<'\n'; break; } for(int i=0;i<4;i++){ int xx=now.x+dx[i],yy=now.y+dy[i]; if(xx>=1 && xx<=n && yy>=1 && yy<=m && a[xx][yy]!='X' && vis[xx][yy]==-1){ if(a[xx][yy]=='F') flag=1; q.push({xx,yy}); vis[xx][yy]=vis[now.x][now.y]+1; } } } if(!flag) cout<<"Poor Harry\n"; flag=0; while(!q.empty()) q.pop(); } return 0; }
-
2024-9-14 22:42:30@
!Help!
#P6370. [COCI2006-2007#6] KAMEN
#include<bits/stdc++.h> using namespace std; int main(){ int r,c,n,s; char a[40][40]; cin>>r>>c; for(int i=1;i<=r;i++){ for(int j=1;j<=c;j++){ cin>>a[i][j]; } } cin>>n; while(n--){ cin>>s; int hang=0,lie=s; if(a[hang][lie]=='X'||a[hang][lie]=='O'){ continue; } while(hang!=r){ if(hang==r){ break; } else{ if(a[hang+1][lie]=='X'){ break; } else{ if(a[hang+1][lie]=='O'&&(a[hang+1][lie-1]=='.'&&a[hang][lie-1]=='.')){ lie--; hang++; } else if(a[hang+1][lie]=='O'&&(a[hang+1][lie+1]=='.'&&a[hang][lie+1]=='.')){ lie++; hang++; } } } if(a[hang+1][lie]=='.'&&hang!=r){ hang++; } } a[hang][lie]='O'; } for(int i=1;i<=r;i++){ for(int j=1;j<=c;j++){ cout<<a[i][j]; } cout<<endl; } return 0; }
WHY ?????
-
2024-9-14 16:58:10@
各位,我陶陶摘苹果这道题的代码丢了,谁能帮我发一个格式弄好的程序,谢谢!
-
2024-9-14 13:19:49@
额....
-
2024-9-14 10:52:46@
@ T3代码贴错了
-
2024-9-14 10:41:37@
其他题库难度与模拟赛题目难度标签严重不对等,洛谷一个紫题的难度才是6。 建议红题1-2 橙题2-3 黄题3-4 绿题5-6 蓝题6-7 紫题7+ 黑题10+ 语法周赛难度1-2 J组模拟赛难度1-6
-
2024-9-14 0:05:37@
复赛模拟赛三的题名全部出自清静经
-
2024-9-13 11:21:09@
考虑加一个类似洛谷的我的文章功能,把自己写的文章/题解归一起,方便查阅与复习
-
2024-9-12 14:55:51@
-
2024-9-10 22:45:50@
ye
-
2024-9-10 21:46:21@
耶?
-
2024-9-9 23:11:35@
https://wiki.33dai.cn/zh/比赛题解/WOTOJO-CSPJ-R1
T2
题目问几个数可以得到最大的输出,显然一个暴力枚举的做法就是对 l\rim r 范围内的每个数都跑一遍这段代码看看输出是几。
源代码改成
题目问几个数可以得到最大的输出,显然一个暴力枚举的做法就是对 $l\rim r$ 范围内的每个数都跑一遍这段代码看看输出是几。
-
2024-9-9 19:20:57@
-
2024-9-8 14:24:50@
我不会
-
2024-9-8 14:24:33@
#A0079. 级数求和 33DAL帮帮我
-
2024-9-8 10:33:10@
ahhhhhhhhhhhh
-
2024-9-6 22:24:19@
模拟赛比语法周赛人数还多
-
2024-9-6 19:31:07@
语法周赛呢
-
2024-9-6 18:04:01@
语法周赛成绩榜 是啥意思
-
2024-9-5 19:44:10@
https://wiki.33dai.cn/zh/比赛题解/语法周赛R30 C题题目名称写错了
-
2024-9-5 3:24:53@
为什么我dev和vs都能跑的代码在wotojo上RE
-
2024-9-4 20:55:56@
新蠢算罚🐎辣怂鼻塞第六题 原来TooY0ung看斗破苍穹啊
-
2024-9-3 20:32:24@
#include<bits/stdc++.h> using namespace std; priority_queue<int>q1,q2; int n,R,L,ans; int a[200010],f[200010]; int main() { scanf("%d%d%d",&n,&L,&R); for(int i=0;i<=n;i++)scanf("%d",&a[i]); for(int i=1;i<L;i++)q2.push(a[i]); for(int i=L;i<=n;i++){ q1.push(f[i-L]); if(i-R-1>=L)q2.push(f[i-R-1]); while(!q2.empty()&&q1.top()==q2.top()){ q1.pop();q2.pop(); } f[i]=q1.top()+a[i]; } for(int i=n-R+1;i<=n;i++)ans=max(ans,f[i]); printf("%d",ans); }
琪露诺 100 Wrong Answer
-
2024-9-1 17:02:43@
之前的硬币都没了?
-
2024-9-1 12:18:37@
#A0575. 乌龟对对碰 题面有误
游戏流程第二步骤
第二步、按编号从小到大的顺序,依次在还存在的乌龟中拿乌龟,每拿一个,乌龟计数器 。每每个乌龟都放到一个空格子中,如果有多个空格子,放在编号最小的空格子中。
加粗部分重复了
-
2024-8-31 21:44:09@
无语
-
2024-8-31 20:21:08@
周赛R30中,题面: 聪明的 kitten 一眼就发现了海报中有个错误, (1000) 2 表示的是二进制下的 1000,对应的十进制数应该是 8 而不是 16。
而海报中为(10000)2,但订错的结果却用1000计算
-
2024-8-31 11:34:46@
@33dai,解释一下,这是为什么 #A0578. 连续打卡与累计打卡
-
2024-8-30 20:21:37@
NO!!!!!!!!!!
-
2024-8-29 21:51:53@
题解能正常发吗
-
2024-8-29 21:50:10@
33DAI好坏哦,难怪没人发讨论了
-
2024-8-29 21:40:57@
@33DAI
周赛pdf打不开
-
2024-8-29 21:09:42@
qp