纪念品分组
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))
全部评论

相关推荐

来,说点可能被同行“骂”的大实话。🙊当初接数字马力Offer时,朋友都说:“蚂蚁的“内包”公司?你想清楚啊!”但入职快一年后的今天,我反而对他有了不一样的看法!🔹&nbsp;是偏见?还是信息差!之前没入职之前外面都在说什么岗位低人一等这类。实际上:这种情况不可至否,不能保证每个团队都是其乐融融。但我在的部门以及我了解的周边同事都还是十分好相处的~和蚂蚁师兄师姐之间也经常开一些小玩笑。总之:身份是蚂蚁公司给的,地位是自己挣的(一个傲娇女孩的自述)。🔹&nbsp;待遇?玩的就是真实!试用期工资全额发!六点下班跑得快(早9晚6或者早10晚7,动态打卡),公积金顶格交。别听那些画饼的,到手的钱和下班的时间才是真的(都是牛马何必难为牛马)。🔹&nbsp;能不能学到技术?来了就“后悔”!我们拥有权限直通蚂蚁知识库,技术栈多到学不完。说“学不到东西”的人,来了可能后悔——后悔来晚了(哈哈哈哈,可以不学但是不能没有)!💥&nbsp;内推地址:https://app.mokahr.com/su/ueoyhg❗我的内推码:NTA6Nvs走我的内推,可以直达业务部门,面试流程更快速,进度可查!今天新放HC,之前挂过也能再战!秋招已经正式开始啦~机会就摆在这,敢不敢来试一试呢?(和我一样,做个勇敢的女孩)
下午吃泡馍:数字马力的薪资一般哇,5年经验的java/测试就给人一万出头,而且刚入职第三天就让人出差,而且是出半年
帮你内推|数字马力 校招
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务