1
#include <iostream>
#include <cstring>
#include <algorithm>
#include <cstdio>
#include <string.h>
#include <cmath>
using namespace std;
int t;
int main()
{
scanf ("%d",&t);
while (t--){
int n,a[110][100]={0},f[110][110]={0};
scanf("%d", &n);
for (int i=1;i<=n;i++){
for (int j=1;j<=i;j++){
scanf ("%d",&a[i][j]);
}
}
int ans=0;
//f[1][1]=a[1][1];//初始化
for (int i=1;i<=n;i++){
for (int j=1;j<=i;j++){
if (j==1) f[i][j]=f[i-1][j]+a[i][j];
else if (j==n) {
f[i][j]=f[i-1][j-1]+a[i][j];
}
else {
f[i][j]=max(f[i-1][j],f[i-1][j-1])+a[i][j];
}
if (i==n) ans=max(ans,f[i][j]);
}
}
printf ("%d\n",ans);
}
return 0;
}
2
#include <iostream>
#include <cstring>
#include <algorithm>
#include <cstdio>
#include <string.h>
#include <cmath>
using namespace std;
int a[2000010],cnt;
bool st[2000010];
//朴素筛 O(nlogn)
void get_prime1(int n){
int i,j;
for (i=2;i<=n;i++){
if (!st[i]) a[cnt++]=i;
for (j=i+i;j<=n;j+=i) st[j]=1;
}
}
//埃氏筛 O(nloglogn)
void get_prime2(int n){
int i,j;
for (i=2;i<=n;i++){
if (!st[i]) {
a[cnt++]=i;
for (j=i+i;j<=n;j+=i) st[j]=1;
}
//if (cnt==100017) return ;
}
}
//线性筛O(n)
void get_prime3(int n){
int i,j;
for (i=2;i<=n;i++){
if (!st[i]) a[cnt++]=i;
//核心思想 一个合数 其最小质因子必定为质数
//算法核心:x仅会被其最小质因子筛去
for (j=0;a[j]<=n/i;j++){
//上面的式子是a[j]*i<=n的变形 防止st数组越界而已
st[a[j]*i]=1;//我们只用最小质因子筛去数
if (i%a[j]==0) break;
//1.i%aj == 0, aj定为i最小质因子,aj也定为aj*i最小质因子
//为什么aj一定是i的最小质因子呢 可以模拟一遍循环
// 循环过程中a[j]一直在增大 那么如果一个aj出现使i%aj==0
// 那么必然是因为前面的素数都无法被整除 从而无法break导致的
// 所以aj必然为最小质因子
//2.i%aj != 0, aj定小于i的所有质因子,所以aj也为aj*i最小质因子
}
}
}
int main()
{
int n;
long long ans=0;
scanf("%d", &n);
get_prime3(n);
for (int i = 0; i < cnt; i ++ ) ans+=a[i];
printf ("%lld\n",ans);
return 0;
}
3
#include <iostream>
#include <cstring>
#include <algorithm>
#include <cstdio>
#include <string.h>
#include <cmath>
using namespace std;
bool cmp(int a,int b){
return a>b;
}
int main()
{
int n;
n=10;
int a[n];
for (int i = 0; i < n; i ++ ){
scanf ("%d",&a[i]);
}
// sort(a,a+n,greater<int>());//也是倒序排序
sort(a,a+n,cmp);
for (int i = 0; i < n; i ++ ){
printf ("%d ",a[i]);
}
return 0;
}
4
#include <iostream>
#include <cstring>
#include <algorithm>
#include <cstdio>
#include <string.h>
#include <cmath>
using namespace std;
int main()
{
int x,y;
scanf ("%d%d",&x,&y);
if (x==y){
printf ("0");
}
else {
if (x==0) printf ("%d",y==1?-1:1);
if (x==1) printf ("%d",y==2?-1:1);
if (x==2) printf ("%d",y==0?-1:1);
//三目运算 int a=y==1?-1:1;
//相当于 if (y==1) a=-1;
// else a=1;
//符合 返回:前的值
//不符合 返回:后的值
}
//int a=y==1?-1:1;
//cout<<a;
return 0;
}
5
#include <iostream>
#include <cstring>
#include <algorithm>
#include <cstdio>
#include <string.h>
#include <cmath>
using namespace std;
int main()
{
string a;
getline(cin,a);
int n=a.size();
int ans=0;
for (int i = 0; i < n; i ++ ){
if (a[i]==' ') ans++;
}
printf ("%d\n",n==0?0:ans+1);
return 0;
}