自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(23)
  • 收藏
  • 关注

原创 多重背包问题(含暴力、二进制优化和单调队列优化)

题目想法1:暴力解决直接设k表示第i件物品有多少。#include<iostream>using namespace std;const int MAX=1005;int w[MAX];int v[MAX];int s[MAX];int f[MAX][MAX];int max(int a,int b){ if(a>b) return a; else return b; }int main(){ int N,V,j; cin>>N>>

2021-09-24 20:20:47 239

原创 完全背包问题

题目想法1采用三层循环,尝试第i种装k个的情况,只要第i中装k个的体积<j就比较采用前i个装j容量和采用前i-1个装j-k*v[i]容量价值+k*w[i]价值之和哪个比较大#include<iostream>using namespace std;const int MAX=1005;int w[MAX];int v[MAX]; int f[MAX][MAX];int max(int a,int b){ if(a>b) return a; else return b

2021-09-23 20:03:48 147

原创 01背包(含二维数组变为一维数组)

01背包有 N 件物品和一个容量是 V 的背包。每件物品只能使用一次。第 i 件物品的体积是 vi,价值是 wi。求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。输出最大价值。输入格式第一行两个整数,N,V,用空格隔开,分别表示物品数量和背包容积。接下来有 N 行,每行两个整数 vi,wi,用空格隔开,分别表示第 i 件物品的体积和价值。输出格式输出一个整数,表示最大价值。数据范围0<N,V≤10000<vi,wi≤1000输入样例4 51

2021-09-23 19:19:48 212

原创 CCFCSP 202104-3 DHCP服务器(C++(100)带解析Python(70)思路相同)

这道题其实就是将其文字内容翻译成代码,从具体实现方法开始一句一句翻译就okN,Tdef,Tmax,Tmin,H=list(input().split())N,Tdef,Tmax,Tmin=list(map(int,[N,Tdef,Tmax,Tmin]))n=int(input())k=0def update(tc): for i in range(1,N+1): if IP[i][1]>0 and IP[i][1]<=tc:#有过期时间和已过期

2021-09-18 17:53:45 240

原创 CCFCSP202104-4(60分) Python

狗不动了,咋写也超时,只有六十分……先挖个坑,等考完CCF我就来填n=int(input())a=list(map(int,input().split()))a.insert(0,-1)dp=[0]*(n+1)dp[1]=1data=set()f=[[0]*(n+1) for i in range(n+1)]an=[[0]*(n+1) for i in range(n+1)]def inzi(i,j,data): x=a[j]-a[i] ans=0 if j-i=

2021-09-17 21:12:21 177

原创 CCFCSP 201604-2俄罗斯方块(Python)

def down(module,block,start):#用于判断当前一行是否满足 for i in range(4): for j in range(4): if block[i][j]==1: if start[0]+i>=15 or module[start[0]+i][start[1]+j]==1:#输入方块的形状要么超出开始模型,要么与原有的模型覆盖 return Fal

2021-08-10 18:02:57 281

原创 CCFCSP 201312-2 ISBN号码(Python)

开始的代码乍一看毫无问题:但是仔细考虑后发现漏掉了给出的结果结尾为X但实际不是10的情况。a=input()stra=a.replace('-','')alist=[]for each in stra: alist+=[each]Sum=0for i in range(9): Sum+=int(alist[i])*(i+1)if Sum%11==10 and alist[9]=='X' or Sum%11==int(alist[9]): print('Right')e

2021-08-09 19:23:07 166

原创 CCFCSP 201512-2 消除类游戏(Python)

写成了老太婆的裹脚布又臭又长。。。但是满分了麻了麻了n,m=list(map(int,input().split()))a=[0]*nline=list(([] for i in range(n)))row=list(([] for i in range(m)))for i in range(n): a[i]=list(map(int,input().split())) count=1 jilu=a[i][0] for j in range(1,m):

2021-08-07 21:12:33 114

原创 CCFCSP 201609-2 火车购票 (Python)

主要值得关注的地方是:否则应该安排在编号最小的几个空座位中(不考虑是否相邻)”这句话。开始没有考虑这句话只得了90分。n=int(input())surplus={}order=list(map(int,input().split()))Sum=100for i in range(1,21): surplus[i]=5for each in order: for i in range(1,21): if each<=surplus[i]:

2021-08-07 20:17:50 152

原创 CCFCSP 201803-2 碰撞的小球(Python)

def move(location,right): if location==L: right=0 if location==0: right=1 if right==1: location+=1 else: location-=1 return location,rightdef bomb(right1,right2): right1=int(not right1) right2=in

2021-08-06 18:30:21 120

原创 CCFCSP 201809-2 买菜(Python)

直接用一个一个比太耗时了,所以选用一个萝卜一个坑系列,简单省事so easyn=int(input())a=[0]*nb=[0]*nMax=0for i in range(n): a[i]=list(map(int,input().split())) if a[i][1]>Max: Max=a[i][1]for i in range(n): b[i]=list(map(int,input().split())) if b[i][1]>M

2021-08-06 17:14:58 170

原创 CCFCSP 201812-2 小明放学(Python)

思路可知,每当过r+y+g时间时为一轮回,与刚开始出发时的各个红绿灯的情况相同,所以在考虑每个红绿灯是什么情况时,采用对总时间取余的方法,即下方代码中的re。k=0的情况直接相加。k=1的情况总体情况如图所示,则需分别判定re是否位于两个红框内。第一个红框表示为re<t(此时没有=,由于当re=t时不需要等待)。此范围内需要等待的时间为t-re第二个红框表示为g+t<=re<=y+g+r,而由于re始终<=y+g+r,所以只需写为g+t<=re(此时有=由

2021-08-06 16:12:37 184

原创 CCFCSP 201903-2 二十四点(Python)

主要利用字符串的replace()方法对其中的字符进行替换,而eval方法是用于计算一个字符串表达式的值也很有用~n=int(input())a=[]for i in range(n): Str=input() Str=Str.replace("x","*") Str=Str.replace("/","//") if eval(Str)==24: a.append('Yes') else: a.append('No')for i

2021-08-06 12:02:08 97

原创 CCFCSP 201909-2 小明种苹果(续)(Python)

n=int(input())a=[0]*nfor i in range(n): a[i]=list(map(int,input().split()))T=0D=0E=0e=[]for i in range(n): t=a[i][1] d=0 for j in range(2,a[i][0]+1): if a[i][j]>0: if t!=a[i][j]: d=1

2021-08-05 21:24:29 156

原创 CCFCSP 201912-2 回收站选址(Python)

n=int(input())data=[0]*nresult=[0]*5for i in range(n): data[i]=list(map(int,input().split()))for i in range(n): x=data[i][0] y=data[i][1] count=-1 if [x,y+1] in data and [x,y-1] in data and [x-1,y] in data and [x+1,y] in data:

2021-08-05 20:24:13 103

原创 CCFCSP 202006-2 稀疏变量(Python)

方法一:运行错误在百度参考资料以后了解到,可能后几个数据太大了,在用input输入数据的过程中就超时了,所以显示运行错误,只有六十……n,a,b=list(map(int,input().split()))u=[0]*nv=[0]*nla=[]lb=[]result=0for i in range(a): index,value=list(map(int,input().split())) u[index-1]=value la.append(index)for i

2021-08-05 19:42:08 245

原创 CCFCSP 202009-2 风险人群筛查(Python)

n,k,t,xl,yd,xr,yu=list(map(int,input().split()))a=[]count,staycount=0,0for i in range(n): a.append(list(map(int,input().split())))for i in range(n): for j in range(t): if xl<=a[i][2*j]<=xr and yd<=a[i][2*j+1]<=yu:

2021-08-04 17:47:42 110

原创 CCF CSP 202012-2 期末预测之最佳阈值(python)

def predict(y,th): if y<th: return 0 else: return 1m=int(input())a=[0]*my=[0]*mfor i in range(m): a[i]=list(map(int,input().split())) y[i]=a[i][0]y=list(set(y))for i in range(len(y)): count=0 for j in rang

2021-08-04 12:06:49 390

原创 CCFCSP 202104-2 邻域均值(python)

这道题的原理即为:对矩阵中的每个数据周围r圈存在的数进行相加(如果超出边界则不加),求其平均值与t进行比较。开始想法:最简单粗暴的暴力破解法:对每个数都求一次周围r圈的数的和,但结果发现需要使用四层循环。python代码如下:(其中l_…表示列,h_…表示行)n,L,r,t=list(map(int,input().split()))a=[]count=0for i in range(n): a.append(list(map(int,input().split())))for i

2021-08-02 20:59:01 1112

原创 CCF CSP 201912-1 报数(Python)

n=int(input())a=[0,0,0,0]count=0i=1while(True): if count==n: break if i%7==0 or '7' in str(i): a[i%4]+=1 else: count+=1 i+=1for i in range(1,4): print(a[i])print(a[0])

2021-07-30 12:49:56 82

原创 CCF CSP 202009-1 检测点查询(c语言)

百度搜到有C语言的快速排序的方法qsort,所以创建函数inc是用于存放排序的条件,在主函数main中调用qsort方法即可。带序号排序,最好用结构体。#include<stdio.h>#include<stdlib.h>typedef struct node{ int data; int order;}node;//设置结构体int inc(const void *a, const void *b){ if((*(node *)a).data!=(*(node

2021-07-30 12:33:06 463

原创 CCFCSP 202006-1线性分类器(Python)

d=[0]*npr=[]up=[]down=[]for i in range(n): d[i] = list(input().split())for j in range(m): s0,s1,s2=list(map(int,input().split())) for i in range(n): y=int(d[i][1]) x=int(d[i][0]) if s0+s1*x+s2*y<0: do

2021-07-30 12:20:19 82

原创 CCF CSP 202104-1灰度直方图(C语言)

#include<stdio.h>#include <stdlib.h>int main(){ int n,m,l,i,x; scanf("%d %d %d",&n,&m,&l); int *h; h=(int *)malloc(sizeof(int)*l); for(i=0;i<l;i++){ h[i]=0; } for(i=0;i<m*n;i++){ scanf("%d",&x); h[x]+=1; }

2021-07-29 18:21:25 1027

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除