
ACM训练赛
代码破碎真君
这个作者很懒,什么都没留下…
展开
-
CF322B Ciel and Flowers
Fox Ciel有r朵红花,g朵绿花和b朵蓝花。她想用这些花做几个花束。有四种类型的花束:制作“红色花束”,要3朵红花 制作“绿色花束”,要3朵绿花 制作“蓝色花束”,要3朵蓝花 制作“混合花束”,要1朵红,1朵绿和1朵蓝花输出可以制作的最大数量的花束。样例1:3 6 96样例2:4 4 44样例3:7 7 87样例4:3 5 54解题思路:通过观察先找混合花束最多能有几朵,但是卡在了样例10也就是3 5 5,他并不是最原创 2022-05-26 17:00:30 · 260 阅读 · 0 评论 -
删除两个相邻的字母 (CF1650A)
tuuummdd找几个特别的发现规律:题说长度为奇数,那么我们发现没次删除两个,那么留下的那个次序必为奇数。但我们没有考虑为1的情况其下标为0,所以需要特判,再进一层次考虑我们可能会遇到相同不连续的字母,从该字母的下一位继续find,直至找不到返回-1。#include<iostream>using namespace std;int main(){ int n; cin>>n; getchar(); while原创 2022-04-04 16:14:33 · 535 阅读 · 0 评论 -
51-Nod 1344 走格子
有编号1-n的n个格子,机器人从1号格子顺序向后走,一直走到n号格子,并需要从n号格子走出去。机器人有一个初始能量,每个格子对应一个整数A[i],表示这个格子的能量值。如果A[i] > 0,机器人走到这个格子能够获取A[i]个能量,如果A[i] < 0,走到这个格子需要消耗相应的能量,如果机器人的能量 < 0,就无法继续前进了。问机器人最少需要有多少初始能量,才能完成整个旅程。例如:n = 5。{1,-2,-1,3,4} 最少需要2个初始能量,才能从1号走到5号格子。途中的能量变化..原创 2022-04-04 15:45:37 · 140 阅读 · 0 评论 -
POJ-1218-醉酒的狱卒
思路:我们先列一个表找一下规律 原本牢房全是关闭的,第一次会都打开,第二次会把2的倍数的都打开..........我们找一个数字看6 —2,3,6共三次会对其造成影响,经历开-关-开-关,所以进行操作数为奇数时,最后状态为关,操作数为偶数时最后状态为开。我们只需记录一下从2开始他可以被几个数整除就可以,包括其本身。#include<iostream>using namespace std;int n,cnt=0;int main(){ int x=0; cin>...原创 2022-04-04 15:36:42 · 1262 阅读 · 0 评论 -
51-Nod 3041 分数字 V1(递归)
将n分成若干个大于0的数的和,按照字典序输出所有方案。一个数 n(1 <= n <= 15 )。41 1 1 1 1 1 2 1 2 1 1 3 2 1 1 2 2 3 1 4题目说要按字典序我们依次递归就行,当搜到就折返,重新赋值。#include<iostream>#define endl "\n"using namespace std;int a[20];int x,sum;void dfs(int step)原创 2022-04-04 15:21:44 · 636 阅读 · 0 评论 -
51 Nod 1268 和为K的组合(C++ DFS)
给出N个正整数组成的数组A,求能否从中选出若干个,使他们的和为K。如果可以,输出:"Yes",否则输出"No"。第1行:2个数N, K, N为数组的长度, K为需要判断的和(2 <= N <= 20,1 <= K <= 10^9) 第2 - N + 1行:每行1个数,对应数组的元素A[i] (1 <= A[i] <= 10^6)如果可以,输出:"Yes",否则输出"No"。这道题可以用动态规划(背包问题)来写但使数据量很小我们直接暴力即可在进行dfs的时候原创 2022-03-15 16:40:56 · 864 阅读 · 0 评论 -
51Nod 1267 四个数和为0(C++,双指针)
给出N个整数,你来判断一下是否能够选出4个数,他们的和为0,可以则输出"Yes",否则输出"No"。第1行,1个数N,N为数组的长度(4 <= N <= 1000)第2 - N + 1行:A[i](-10^9 <= A[i] <= 10^9)我们直接暴力肯定不行,找规律先找四个数其和为0 eg: -6 3 1 2 我们可以先发现任意两个的和为其他两个的相反数,这样枚举两个就行了,但是还是很麻烦,可以先对其排序,枚举前两个较小的用二分(也不算二分其实更像是双指针)来判断原创 2022-03-15 16:30:34 · 797 阅读 · 0 评论 -
CF121A Lucky Sum(codeforces C++)
Petya喜欢Lucky Number。仅含有数字44和77的数字是一个Lucky Number。规定next(x)next(x)等于最小的大于等于xx的Lucky Number。现在Petya想知道next(l)+next(l+1)+...+next(r-1)+next(r)next(l)+next(l+1)+...+next(r−1)+next(r)的值是多少。(1<=l<=r<=10^{9})(1<=l<=r<=109)题目的意思就是只要含有4或7有其他数字原创 2022-03-10 21:01:51 · 703 阅读 · 0 评论 -
CF44B Cola
有a瓶0.5升,b瓶1升,c瓶2升的可乐,求买n升可乐的方案数输入 n , a, b , cc ( 1<=n<=10000 , 0<=a,b,c<=50000<=a,b,c<=5000 ).1.这道题先想到的是背包问题,真的好像,最近刚学了背包,真的希望能派上用处,但是写的时候忽略了一点,二维浮点型数组-对数组元素操作的时候有对行或者列的引用,比如max(dp[i][j],dp[i-1][j-v[i]+w[i])2.换一种思考方式枚举,真的好暴力,n..原创 2022-03-10 20:27:03 · 173 阅读 · 0 评论 -
装箱问题-2072(C++写法)
01背包问题只不过这里的价值换成了背包容量一样的解题思路#include<iostream>using namespace std;int dp[40][20010];int v[40];int main(){ int volume,n; cin>>volume>>n; for(int i=1;i<=n;i++) { cin>>v[i]; } for(int i=1;i<=n;i++) for(int.原创 2022-03-08 11:12:40 · 792 阅读 · 0 评论