图形点扫描
有一条“封闭”曲线划定的地图,界定曲线上的点有“1“表示,曲线内外的点用“0”表示(具体数据由另文件提供)。
试实施图形点扫描,统计地图的面积即“封闭”曲线内“0”点数。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 | #include<cstdio> #include<cstring> #include<algorithm> #include<cmath> using namespace std; int n,m; int ans[15][15]; void in_put() { //memset(ans,-1,sizeof(ans)); scanf ( "%d%d" ,&n,&m); for ( int i=1;i<=n;++i) for ( int j=1;j<=m;++j) scanf ( "%d" ,&ans[i][j]); } void out_put() { int cnt=0; for ( int i=1;i<=n;++i) for ( int j=1;j<=m;++j) if (!ans[i][j]) cnt++; printf ( "%d\n" ,cnt); } void dfs( int c, int v) { if ((c<=n&&c>=1)&&(v>=1&&v<=n)&&!ans[c][v]) { ans[c][v]=-1; dfs(c-1,v);dfs(c+1,v); dfs(c,v+1);dfs(c,v-1); } } void solve() { in_put(); for ( int i=1;i<=n;++i) for ( int j=1;j<=m;j++){ if (i==1||j==m||j==1||i==n){ if (!ans[i][j]) {ans[i][j]=-1; dfs(i-1,j); dfs(i+1,j); dfs(i,j+1); dfs(i,j-1);} } } } int main() { //freopen("case.txt","r",stdin); int t=2; while (t--){ solve(); out_put(); for ( int i=1;i<=n;++i){ for ( int j=1;j<=m;++j) printf ( "%d " ,ans[i][j]); printf ( "\n" );} } return 0; } |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧