纪念品分组
import sys
w,n,*a=map(int,sys.stdin.read().split())
a.sort()
i,j,t=0,n-1,0
while i<=j:
if a[i]+a[j]<=w:i+=1
j-=1
t+=1
print(t)
采药
T,M=map(int,input().split())
dp=[0]*(T+1)
for _ in range(M):
n,m=map(int,input().split())
for i in range(T,n-1,-1):
dp[i]=max(dp[i],dp[i-n]+m)
print(dp[T])
合并果子
n=int(input())
a=list(map(int,input().split()))
s=0
#输入
for i in range(n-1):
a.sort()
a[1]=a[0]+a[1]
del a[0]
s+=a[0]
print(s)
开心金明
n,m=map(int,input().split())
f=[0]*(n+1)
for i in range(m):
a,b=map(int,input().split())
for j in range(n,a,-1):
f[j]=max(f[j],f[j-a]+a*b)
print(max(f))
能量项链
n=int(input())
a=list(map(int,input().split()))[:n]*2
dp=[[0]*2*n for _ in range(2*n)]
for l in range(2,n+1):
for i in range(2*n-l):
j=i+l
for k in range(i+1,j):
dp[i][j]=max(dp[i][j],dp[i][k]+dp[k][j]+a[i]*a[k]*a[j])
print(max(dp[i][i+n]for i in range(n)))
装箱
V=int(input())
n=int(input())
dp=[0]*(V+1)
for _ in range(n):
a=int(input())
for j in range(V,a-1,-1):
dp[j]=max(dp[j],dp[j-a]+a)
print(V-dp[V])
一元三次方
a,b,c,d=map(float,input().split())
x=-100
while x<=100:
if -0.01<a*x**3+b*x**2+c*x+d<0.01:
print("%.2f"%x,end=" ")
x+=0.01
选数
from itertools import combinations as c
n,k=map(int,input().split())
l=list(map(int,input().split()))
print(sum(1for i in c(l,k)if all(sum(i)%x for x in range(2,int(sum(i)*0.5)+1))and sum(i)>1))
最长公共子数列
#include<bits/stdc++.h>
using namespace std;
const int M=5e3+5,mod=1e8;
int m,n,f[M][M],c[M][M];
string a,b;
int main(){cin>>a>>b;m=a.size()-1;
n=b.size()-1;a=' '+a,b=' '+b;
for(int i=0;i<=m;i++)c[i][0]=1;
for(int i=0;i<=n;i++)c[0][i]=1;
for(int i=1;i<=m;i++){for(int j=1;j<=n;j++)
{if(a[i]==b[j])f[i][j]=f[i-1][j-1]+1,c[i][j]=c[i-1][j-1];
else f[i][j]=max(f[i-1][j],f[i][j-1]);
if(f[i][j]==f[i-1][j])c[i][j]+=c[i-1][j];
if(f[i][j]==f[i][j-1])c[i][j]+=c[i][j-1];
if(f[i][j]==f[i-1][j-1])c[i][j]-=c[i-1][j-1];
c[i][j]%=mod;}}cout<<f[m][n]<<'\n'<<c[m][n];
return 0;}
2的N次方
print(2**int(input()))
混合牛奶
n,m=map(int,input().split())
v=sorted(list(map(int,input().split()))for _ in range(m))
s=0
for p,a in v:
t=min(n,a)
s+=t*p
n-=t
print(s)
数列分段
import sys
n,m,*a=map(int,sys.stdin.read().split())
t=r=1
for x in a:
r+=x
if(r>m):
t+=1
r=x
print(t)
石子合并
n=int(input());a=list(map(int,input().split()));a*=2
s=[0]*(n*2+1)
for i in range(n*2):s[i+1]=s[i]+a[i]
mn=[[0]*n*2 for _ in range(n*2)]
mx=[[0]*n*2 for _ in range(n*2)]
for l in range(1,n):
for i in range(n*2-l):
j=i+l;t=s[j+1]-s[i];mn[i][j]=min(mn[i][k]+mn[k+1][j]+t for k in range(i,j))
mx[i][j]=max(mx[i][k]+mx[k+1][j]+t for k in range(i,j))
print(min(mn[i][i+n-1]for i in range(n)));print(max(mx[i][i+n-1]for i in range(n)))
田忌赛马
n=int(input())
t,q=sorted(map(int,input().split())),sorted(map(int,input().split()))
i=j=0
a=b=n-1
r=0
while i<=a:
if t[a]>q[b]:r+=200;a-=1;b-=1
elif t[i]>q[j]:r+=200;i+=1;j+=1
elif t[i]<q[b]:r-=200;i+=1;b-=1
else:break
print(r)
斐波那契数列
n=int(input())
f=[1,1]
for i in range(2,30):f.append(f[i-1]+f[i-2])
for _ in range(n):print(f[int(input())-1])
全排列
import itertools as it
n=int(input())
for p in it.permutations(range(1,n+1)):print(''.join(f'{x:5d}'for x in p))
import sys
w,n,*a=map(int,sys.stdin.read().split())
a.sort()
i,j,t=0,n-1,0
while i<=j:
if a[i]+a[j]<=w:i+=1
j-=1
t+=1
print(t)
采药
T,M=map(int,input().split())
dp=[0]*(T+1)
for _ in range(M):
n,m=map(int,input().split())
for i in range(T,n-1,-1):
dp[i]=max(dp[i],dp[i-n]+m)
print(dp[T])
合并果子
n=int(input())
a=list(map(int,input().split()))
s=0
#输入
for i in range(n-1):
a.sort()
a[1]=a[0]+a[1]
del a[0]
s+=a[0]
print(s)
开心金明
n,m=map(int,input().split())
f=[0]*(n+1)
for i in range(m):
a,b=map(int,input().split())
for j in range(n,a,-1):
f[j]=max(f[j],f[j-a]+a*b)
print(max(f))
能量项链
n=int(input())
a=list(map(int,input().split()))[:n]*2
dp=[[0]*2*n for _ in range(2*n)]
for l in range(2,n+1):
for i in range(2*n-l):
j=i+l
for k in range(i+1,j):
dp[i][j]=max(dp[i][j],dp[i][k]+dp[k][j]+a[i]*a[k]*a[j])
print(max(dp[i][i+n]for i in range(n)))
装箱
V=int(input())
n=int(input())
dp=[0]*(V+1)
for _ in range(n):
a=int(input())
for j in range(V,a-1,-1):
dp[j]=max(dp[j],dp[j-a]+a)
print(V-dp[V])
一元三次方
a,b,c,d=map(float,input().split())
x=-100
while x<=100:
if -0.01<a*x**3+b*x**2+c*x+d<0.01:
print("%.2f"%x,end=" ")
x+=0.01
选数
from itertools import combinations as c
n,k=map(int,input().split())
l=list(map(int,input().split()))
print(sum(1for i in c(l,k)if all(sum(i)%x for x in range(2,int(sum(i)*0.5)+1))and sum(i)>1))
最长公共子数列
#include<bits/stdc++.h>
using namespace std;
const int M=5e3+5,mod=1e8;
int m,n,f[M][M],c[M][M];
string a,b;
int main(){cin>>a>>b;m=a.size()-1;
n=b.size()-1;a=' '+a,b=' '+b;
for(int i=0;i<=m;i++)c[i][0]=1;
for(int i=0;i<=n;i++)c[0][i]=1;
for(int i=1;i<=m;i++){for(int j=1;j<=n;j++)
{if(a[i]==b[j])f[i][j]=f[i-1][j-1]+1,c[i][j]=c[i-1][j-1];
else f[i][j]=max(f[i-1][j],f[i][j-1]);
if(f[i][j]==f[i-1][j])c[i][j]+=c[i-1][j];
if(f[i][j]==f[i][j-1])c[i][j]+=c[i][j-1];
if(f[i][j]==f[i-1][j-1])c[i][j]-=c[i-1][j-1];
c[i][j]%=mod;}}cout<<f[m][n]<<'\n'<<c[m][n];
return 0;}
2的N次方
print(2**int(input()))
混合牛奶
n,m=map(int,input().split())
v=sorted(list(map(int,input().split()))for _ in range(m))
s=0
for p,a in v:
t=min(n,a)
s+=t*p
n-=t
print(s)
数列分段
import sys
n,m,*a=map(int,sys.stdin.read().split())
t=r=1
for x in a:
r+=x
if(r>m):
t+=1
r=x
print(t)
石子合并
n=int(input());a=list(map(int,input().split()));a*=2
s=[0]*(n*2+1)
for i in range(n*2):s[i+1]=s[i]+a[i]
mn=[[0]*n*2 for _ in range(n*2)]
mx=[[0]*n*2 for _ in range(n*2)]
for l in range(1,n):
for i in range(n*2-l):
j=i+l;t=s[j+1]-s[i];mn[i][j]=min(mn[i][k]+mn[k+1][j]+t for k in range(i,j))
mx[i][j]=max(mx[i][k]+mx[k+1][j]+t for k in range(i,j))
print(min(mn[i][i+n-1]for i in range(n)));print(max(mx[i][i+n-1]for i in range(n)))
田忌赛马
n=int(input())
t,q=sorted(map(int,input().split())),sorted(map(int,input().split()))
i=j=0
a=b=n-1
r=0
while i<=a:
if t[a]>q[b]:r+=200;a-=1;b-=1
elif t[i]>q[j]:r+=200;i+=1;j+=1
elif t[i]<q[b]:r-=200;i+=1;b-=1
else:break
print(r)
斐波那契数列
n=int(input())
f=[1,1]
for i in range(2,30):f.append(f[i-1]+f[i-2])
for _ in range(n):print(f[int(input())-1])
全排列
import itertools as it
n=int(input())
for p in it.permutations(range(1,n+1)):print(''.join(f'{x:5d}'for x in p))
全部评论
相关推荐
昨天 10:24
门头沟学院 Java 点赞 评论 收藏
分享
10-19 18:20
福建师范大学 Java
下午吃泡馍:数字马力的薪资一般哇,5年经验的java/测试就给人一万出头,而且刚入职第三天就让人出差,而且是出半年
帮你内推|数字马力 校招 点赞 评论 收藏
分享
点赞 评论 收藏
分享