题目传送

P2669 [NOIP2015 普及组] 金币

  • 简单题,可以画个图
    image

  • 需要注意是否需要开 long long

  • \({(1+n)*n}/{2}=1e4 ==> n<2e2\)

  • \(2e2*1e4 = 2e6\) 无需 long long。

  • 若扩大数据范围,就需要longlong以及利用公式优化了

点击查看代码
#include<bits/stdc++.h>
using namespace std;

int main() {
    int k,cnt=0, ans=0; cin>>k;
    for(int i=1; cnt<k; i++){
        // for(int j=1; j<=i && cnt<k; j++) {
        //     ans+=i, cnt++;
        // }
        if(cnt+i<=k) ans+=i*i, cnt+=i;// 可以优化
        else { ans+=i*(k-cnt); break; }
    }
    cout<<ans;
    return 0;
}

P2670 [NOIP2015 普及组] 扫雷游戏

  • 开心游戏,为了简化,可以开 dis[][2] 数组记录方向
  • 枚举每个点,如果不是地雷,查询九宫格内的地雷数量。
点击查看代码
#include<bits/stdc++.h>
using namespace std;
const int N=110,INF=0x3f3f3f3f;
int n,m,dis[][2]={-1,-1, -1,0, -1,1, 0,-1, 0,1, 1,-1, 1,0, 1,1};
string s[N];

int main() {
    cin>>n>>m;
    for(int i=0; i<n; i++) cin>>s[i];
    for(int i=0; i<n; i++){
        for(int j=0; j<m; j++){
            if(s[i][j]=='?'){
                int cnt=0;
                for(int k=0; k<8; k++){
                    int tx=i+dis[k][0], ty=j+dis[k][1];
                    if(tx<0||tx>=n||ty<0||ty>=m) continue;
                    if(s[tx][ty]=='*') cnt++;
                }
                s[i][j]=cnt+'0';
            }
        }
    }
    for(int i=0; i<n; i++) cout<<s[i]<<endl;
    return 0;
}

P2671 [NOIP2015 普及组] 求和

P2672 [NOIP2015 普及组] 推销员

原文地址:http://www.cnblogs.com/hellohebin/p/16812838.html

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长! 2. 分享目的仅供大家学习和交流,请务用于商业用途! 3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入! 4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解! 5. 如有链接无法下载、失效或广告,请联系管理员处理! 6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需! 7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员! 8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载 声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性