B题0和1:

https://www.cnblogs.com/kongbursi-2292702937/p/11268230.html

A题:

 题目数据非常小,所以这道题是不卡时间的。就直接dfs递归就完了

可能有人会问怎么dfs,那就枚举每一个宠物的技能。如果概率大于题目要求的k的话就统计一下最小代价就完了

代码:

 1 #include<stdio.h>
 2 #include<string.h>
 3 #include<algorithm>
 4 #include<iostream>
 5 using namespace std;
 6 const int maxn=55;
 7 const int INF=0x3f3f3f3f;
 8 int v[maxn],k,n,w[maxn],p[maxn],minn=INF;
 9 void dfs(int x,int y)
10 {
11     if(x>=k)
12     {
13         minn=min(minn,y);
14         return;
15     }
16     for(int i=1; i<=n; ++i)
17     {
18         if(v[i])
19         {
20             v[i]--;
21             dfs(x+w[i],y+p[i]);
22             v[i]++;
23         }
24     }
25 }
26 int main()
27 {
28     scanf("%d%d",&n,&k);
29     for(int i=1; i<=n; ++i)
30     {
31         scanf("%d",&v[i]);
32     }
33     for(int i=1; i<=n; ++i)
34     {
35         scanf("%d",&w[i]);
36     }
37     for(int i=1; i<=n; ++i)
38     {
39         scanf("%d",&p[i]);
40     }
41     dfs(0,0);
42     if(minn==INF)
43         printf("NO\n");
44     else printf("%d\n",minn);
45     return 0;
46 }

H题:

题目描述的字典树部分可以不看(给你说可以用字典树来做,又没说必须用它来做)

看一下数据又不大,那就暴力写呗

直接看代码吧

代码:

 1 //#include <iostream>
 2 //#include <cstdio>
 3 //#include <cstring>
 4 //#include <cstdlib>
 5 //#include <algorithm>
 6 //using namespace std;
 7 //typedef long long ll;
 8 //const int maxn=26;
 9 //const int mod=998244353;
10 //typedef struct Trie* TrieNode;
11 #include <cstdio>
12 #include <string.h>
13 int main()
14 {
15     char num[10005][15];
16     int num_1[10000] = {0};
17     int max = 0;
18     int count;
19     int count_1;
20     scanf("%d",&count);
21     for (int i = 0; i < count; i++)
22     {
23         scanf("%s",num[i]);
24         for(int j = 0; j <= i; j++)
25         {
26             if(strcmp(num[i], num[j])==0)
27             {
28                 num_1[i]++;
29             }
30         }
31     }
32     for (int i =0; i < count; i++)
33     {
34         if( max < num_1[i])
35         {
36             max = num_1[i];
37             count_1 = i;
38         }
39     }
40 //    FILE *fp=NULL;
41 //    fp=fopen("4.txt","w");
42     printf("%s %d",num[count_1],max);
43     //fclose(fp);
44     return 0;
45 }
12-26 00:24
查看更多