【A-风格不统一如何写程序】

输入字符串,得到长度,对于每个字符:如果是大写,则改为:‘_’+小写;如果是‘_’则忽略‘_’,并且把后面的小写改为大写。

#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<iostream>
#include<algorithm>
using namespace std;
char c[];
int main()
{
int N,len,i;
scanf("%d",&N);
while(N--){
scanf("%s",c+);
len=strlen(c+);
for(i=;i<=len;i++){
if(c[i]=='_') {
i++;
c[i]=toupper(c[i]);
}
else if(c[i]>='A'&&c[i]<='Z'){
printf("_");
c[i]=tolower(c[i]);
}
printf("%c",c[i]);
}
printf("\n");
} return ;
}

【B-歌德巴赫猜想】

两种解法:

一:先把素数筛选出来,然后试探即可。筛选素数一般是埃氏筛法和欧式筛(不会的请自学)。

二:枚举p,q=n-p,然后判断p,q是否是素数。判断一个数X是否是素数的方式是枚举2-sqrt(X),是否能被X整除。

代码是第一种解法的欧氏筛。

#include<cmath>
#include<cstring>
#include<cstdlib>
#include<cstdio>
#include<algorithm>
using namespace std;
const int maxn=;
int p[maxn+],vis[maxn+],cnt,N;
void solve()
{
for(int i=;i<=N;i++){
if(!vis[i]) p[++cnt]=i;
for(int j=;j<=cnt&&i*p[j]<=N;j++){
vis[i*p[j]]=;
if(i%p[j]==) break;
}
}
}
int main()
{
scanf("%d",&N);solve();
for(int i=;i<=cnt;i++){
if(!vis[N-p[i]]) {
printf("%d %d\n",p[i],N-p[i]);
return ;
}
}
}

【C-数组重排2】

显然,题意是要找最大上升子序列长度X,答案就是N-X,所以倒序检验是否是连续下降的,是则X++。

#include<cstdio>
#include<cstdlib>
#include<iostream>
#include<algorithm>
#include<memory>
#include<cstring>
using namespace std;
int a[],ans,now;
int main()
{
int i,j,n;
scanf("%d",&n);
for(i=;i<=n;i++) scanf("%d",&a[i]);
now=n;
for(i=n;i>=;i--){
if(a[i]==now){
ans++;
now--;
}
}
printf("%d\n",n-ans);
return ;
}

【D-方格取数】

基础DP(动态规划),为了让两人路径不相交,我们使二人一起走,第一位从(2,1)出发,第二位从(1,2)出发,(保证第一位在第二位的下面,即i>j)在走X步的情况下,第一位走到(i,X-i),第二位走到(j,X-j),用dp[X][i][j]表示二人分别走到(i,X-i) (j,X-j)的最大值。

第一位可能从上面或者左边来,第二位同理。那么X的来源有(i,X-i-1)+(j,X-j-1);(i,X-i-1)+(j-1,X-j);   (i-1,X-i)+(j,X-j-1) ;   (i-1,X-i-1)+(j-1,X-j);分别取最优解即可。

#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
int dp[][][],a[][];
int main()
{
int n,i,k,j;
scanf("%d",&n);
for(i=;i<=n;i++)
for(j=;j<=n;j++)
scanf("%d",&a[i][j]);
dp[][][]=a[][]+a[][]+a[][]+a[][];
for(i=;i<=n+n-;i++)
for(j=;j<=n;j++)
for(k=;k<=j-;k++){
dp[i][j][k]=max(dp[i][j][k],dp[i-][j][k-]);
dp[i][j][k]=max(dp[i][j][k],dp[i-][j][k]);
dp[i][j][k]=max(dp[i][j][k],dp[i-][j-][k]);
dp[i][j][k]=max(dp[i][j][k],dp[i-][j-][k-]);
dp[i][j][k]+=a[j][i-j]+a[k][i-k];
}
printf("%d\n",dp[n+n-][n][n-]+a[n][n]+a[n][n]);
return ;
}

【CQ18阶梯赛第一场】题解的更多相关文章

  1. 【CQ18阶梯赛第二场】题解

    [A-H国的身份证号码I] 用N个for语句可以搞定,但是写起来不方便,所以搜索. dfs(w,num,p)表示搜索完前w位,前面x组成的数位num,最后以为为p. 如果搜索到第N位,则表示num满足 ...

  2. contesthunter暑假NOIP模拟赛第一场题解

    contesthunter暑假NOIP模拟赛#1题解: 第一题:杯具大派送 水题.枚举A,B的公约数即可. #include <algorithm> #include <cmath& ...

  3. CQ18阶梯赛第二场

    H国的身份证号码I HihoCoder - 1558 只要单纯的判断一下前后的乘积就好了, 因为不是很想处理倍数的关系, 所以我这里是用 string去处理. 代码: #include<bits ...

  4. Contest1585 - 2018-2019赛季多校联合新生训练赛第一场(部分题解)

    Contest1585 - 2018-2019赛季多校联合新生训练赛第一场 C 10187 查找特定的合数 D 10188 传话游戏 H 10192 扫雷游戏 C 传送门 题干: 题目描述 自然数中除 ...

  5. HDU6578 2019HDU多校训练赛第一场 1001 (dp)

    HDU6578 2019HDU多校训练赛第一场 1001 (dp) 传送门:http://acm.hdu.edu.cn/showproblem.php?pid=6578 题意: 你有n个空需要去填,有 ...

  6. HDU6579 2019HDU多校训练赛第一场1002 (线性基)

    HDU6579 2019HDU多校训练赛第一场1002 (线性基) 传送门:http://acm.hdu.edu.cn/showproblem.php?pid=6579 题意: 两种操作 1.在序列末 ...

  7. NOI.AC NOIP模拟赛 第一场 补记

    NOI.AC NOIP模拟赛 第一场 补记 candy 题目大意: 有两个超市,每个超市有\(n(n\le10^5)\)个糖,每个糖\(W\)元.每颗糖有一个愉悦度,其中,第一家商店中的第\(i\)颗 ...

  8. 【CQ18阶梯赛第8场】题解

    [A:HDU2032 杨辉三角]: 简单的递推,或者是基础的DP: 但是只有杨润东一个人1A,整体准确率只有8/37,具体原因不详. 经验:提交前一定要试一下比较特殊的数据或者最大的数据.其次,为了保 ...

  9. WC2019 全国模拟赛第一场 T1 题解

    由于只会T1,没法写游记,只好来写题解了... 题目链接 题目大意 给你一个数列,每次可以任取两个不相交的区间,取一次的贡献是这两个区间里所有数的最小值,求所有取法的贡献和,对 \(10^9+7\) ...

随机推荐

  1. 浅谈云网融合与SD-WAN

    一.引言 近年来,SD-WAN作为一项新技术在行业应用领域里快速发展,企业对SD-WAN的接受度日渐提升,各厂商也纷纷提出解决方案.随着全球云计算领域的活跃创新和我国云计算发展进入应用普及阶段,越来越 ...

  2. Java中ArrayList类

    ArratList 类:存放同一数据类型容器(只能为引用数据类型,因实际其内部存放的是地址) 1.导入其所在包 import java.util.ArratList 2.创建对象 ArrayList& ...

  3. 【深入Java虚拟机】之五:多态性实现机制——静态分派与动态分派

    方法解析 Class文件的编译过程中不包含传统编译中的连接步骤,一切方法调用在Class文件里面存储的都只是符号引用,而不是方法在实际运行时内存布局中的入口地址.这个特性给Java带来了更强大的动态扩 ...

  4. 使用systemtap调试Linux内核 :www.lenky.info

    http://www.lenky.info/archives/category/nix%E6%8A%80%E6%9C%AF/%E8%B7%9F%E8%B8%AA%E8%B0%83%E8%AF%95

  5. Python机器学习--聚类

    K-means聚类算法 测试: # -*- coding: utf-8 -*- """ Created on Thu Aug 31 10:59:20 2017 @auth ...

  6. BUPT复试专题—字符串转换(2013计院)

    题目描述 我们将仅由若干个同一小写字母构成的字符串称之为简单串,例如"aaaa"是一个简单串,而"abcd"则不是简单串.现在给你一个仅由小写字母组成的字符串, ...

  7. HDU 2009 整除的尾数 题解

    Problem Description 一个整数,仅仅知道前几位,不知道末二位.被还有一个整数除尽了.那么该数的末二位该是什么呢?   Input 输入数据有若干组,每组数据包括二个整数a,b(0&l ...

  8. ruby简单的基础 2

    1.代码块 代码块是用大括号或者do...end括起来的一系列代码.{ #this is a block} do #this is a blockend [1,2,3,4,5].each {|i| p ...

  9. HDOJ1004 数组还要自己初始化

    #include <iostream> #include <stdio.h> #include "string.h"using namespace std; ...

  10. android自己定义开关控件

    近日在android项目要使用开关控件.可是android中自带的开关控件不太惬意,所以就打算通过自己定义View写一个开关控件 ios的开关控件当然就是我要仿照的目标. 先上图:   waterma ...