祁阳做网站网站怎么关闭
- 作者: 五速梦信息网
- 时间: 2026年03月21日 10:12
当前位置: 首页 > news >正文
祁阳做网站,网站怎么关闭,全网营销和网站建设,厦门专业的网站建设文章目录 A DFS搜索M牛客老粉才知道的秘密G why外卖E 本题又主要考察了贪心B 关鸡C 按闹分配 今天的牛客#xff0c;说是都是基础题#xff0c;头昏昏的#xff0c;感觉真不会写#xff0c;只能赛后补题了 A DFS搜索
写的时候刚开始以为还是比较难的#xff0c;和dfs有关… 文章目录 A DFS搜索M牛客老粉才知道的秘密G why外卖E 本题又主要考察了贪心B 关鸡C 按闹分配 今天的牛客说是都是基础题头昏昏的感觉真不会写只能赛后补题了 A DFS搜索
写的时候刚开始以为还是比较难的和dfs有关读完题目发现就是一个序列中含有dfs而且字符串的长度小于等于五十可以直接三层暴力搜索即可。
需要注意要考虑长度小于3的情况刚开始没有考虑到如果小于3肯定是不符合的。AC代码
#include bits/stdc.h
using namespace std;
int main()
{int n;cin n;string s1 DFS;string s2 dfs;while (n–){bool flag1 false;bool flag2 false;int t;string s;cin t s;if (s.length() 3){cout 0 0 endl;continue;}for (int i 0; i s.length() - 2; i){if (s[i] D){for (int j i 1; j s.length() - 1; j){if (s[j] F){for (int k j 1; k s.length(); k){if (s[k] S){// 满足条件的flag1 true;}}}}}}for (int i 0; i s.length() - 2; i){char c s[i];if (s[i] d){for (int j i 1; j s.length() - 1; j){if (s[j] f){for (int k j 1; k s.length(); k){if (s[k] s){// 满足条件的flag2 true;}}}}}}if (flag1 true){cout 1 ;}else{cout 0 ;}if (flag2 true){cout 1 endl;}else{cout 0 endl;}}
}M牛客老粉才知道的秘密
这道题目其实可以看做是数论和找规律的题目属于div4了。
每次只能显示6道题目刚开始去模拟了一遍超时间复杂度了需要的是O(1)
可以这样想着如果为6的整数那么最左侧一道的可能性往后移动应该是n/6并且向右和向左是相同的位置
如果不是6的整数呢先移动n/6次再一次移动到了最右边。此时为n/61从最右边往左开始移动可以发现最左边的位置和向右移动只可能在1的时候会有重复其他是不可能重复的因为刚才发生移位了。所以数量为n/6-1 。综上就是n/6*2
AC代码 import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner scannernew Scanner(System.in);int tscanner.nextInt();while (t–0){int sum0;int nscanner.nextInt();int kn%6;if (k!0){//简单的逻辑思维题目int mn/6;summm;}else{sumn/6;}System.out.println(sum);}}
} G why外卖
这也是一道模拟题目感觉是基本的高中数学题目要想明白他们之间的关系我感觉就可以了可以使用优惠卷但是购买物品的价格必须大于所用的优惠卷我刚开始在想如果花费价格小于优惠卷如何解决其实这个问题是可以不同解决的。sum是可以减去的钱summ可以你可以购买最大商品的价值如果summ大于了当前的优惠卷就可以ans就等于nsum;但是如果现在是100 80 只有10块钱那么不符合要求为什么sum还要加上八十呢这个80现在其实只是加在了sum里面并没有加到ans里面。因为数组是升序的也就是后面如果大于了说明前面一定也是大于的。就可以加进来。
package 牛客寒假训练营.第一场.G;import java.util.Arrays;
import java.util.Scanner;class Money implements ComparableMoney {long a;
long b;public Money(long a, long b) {this.a a;this.b b;
}Override
public int compareTo(Money other) {return Long.compare(this.a, other.a);
}
}public class Main {
public static void main(String[] args) {Scanner scanner new Scanner(System.in);int t scanner.nextInt();while (t– 0) {solve(scanner);}
}static void solve(Scanner scanner) {int n scanner.nextInt();long m scanner.nextLong();Money[] c new Money[100005];long ans m;long sum 0;for (int i 1; i n; i) {long a scanner.nextLong();long b scanner.nextLong();c[i] new Money(a, b);}Arrays.sort(c, 1, n 1); //排序出来的按照优惠的价格进行排序for (int i 1; i n; i) {sum c[i].b;//优惠的价格if (sum m c[i].a) {ans m sum;}}System.out.println(ans);
}
}E 本题又主要考察了贪心
不能被题目的名称所迷惑说是贪心考点其实并不是贪心。
这道题在考场如何去做呢先看数据范围。每次比赛都有三种对应的可能m10说明最多有十场比赛也就是3的10次方这个时间复杂度是可以接收的可以想到用dfs去解决。
#include bits/stdc.h
using namespace std;
int n, m;
int x[101], y[101];
int ans, a[101];// u是对应的场数 当um表示比赛已经结束的时候
void dfs(int u)
{if (u m){int rank 1;for (int i 2; i n; i){if (a[1] a[i])rank;}ans min(ans, rank);return;}a[x[u]] 3;dfs(u 1);a[x[u]] - 3;a[y[u]] 3;dfs(u 1);a[y[u]] - 3;a[x[u]];a[y[u]];dfs(u 1);a[x[u]]–;a[y[u]]–;
}
int main()
{int t;cin t;while (t–){cin n m;ans n;for (int i 1; i n; i){cin a[i];}for (int i 1; i m; i){cin x[i] y[i];}dfs(1);cout ans endl;}
}其实就是可以看作为一个三叉树来看每一次都是有A赢或者B赢或者AB平局走遍每一个路径需要找到最好的排名。时间复杂度 o(n*3^m);用a数组来存左边操作的玩家用b数组来存储右边操作的玩家。dfs结束的条件就是um表示游戏轮数结束了 B 关鸡
如何将这个鸡关在里面呢想要这个鸡不跑出去有两个情况第一个是需要四个点各方在两边即可。第二个是三个火点直接将g包围即可。所以刚开始让ans14ans23 看两个哪个小ans2需要全部包围只能由一种情况就是刚开始是包围的。并且如果n0一定是最小需要三个直接包围起来。
#include bits/stdc.h
#define int long long
#define pii pairdouble,double
using namespace std;
const int N2e55;
int t,n,m,k;
int x,y,a[N],b[N];
signed main() {cint; // 输入测试用例数量while(t–) {cinn; // 输入点的数量if(n0) { // 如果点的数量为0cout3endl; // 输出3continue;}mapint,int ma1,ma2; // 定义两个map用于统计x1和x2的y的出现次数int ans14,ans23; // 初始化两个答案分别对应x1和x2的情况bool ll0,rr0; // 判断左右区间是否有点for(int i0;in;i) {cinxy; // 输入x和yif(x1y1) ans2–; // 如果x1,y1ans2减1if(x1y-1) ans2–; // 如果x1,y-1ans2减1if(x2y0) ans2–; // 如果x2,y0ans2减1if(y0) ll1; // 如果y0左区间有点if(y0) rr1; // 如果y0右区间有点if(x1) {ma1[y]; // 统计x1的y出现的次数}if(x2) {ma2[y]; // 统计x2的y出现的次数}}if(ll) ans1–; // 如果左区间有点ans1减1 左边有端点if(rr) ans1–; // 如果右区间有点ans1减1 右边有端点bool l0,r0; // 判断左右区间是否有点for(auto it:ma1) {int pit.first; // 获取y的值if(p0) {//存在一个点周围有其他点那边这里肯定是出不去的 下面ans还需要–if(ma2[p-1]||ma2[p]||ma2[p1]) l1; // 如果左区间存在点l置为1}if(p0) {if(ma2[p-1]||ma2[p]||ma2[p1]) r1; // 如果右区间存在点r置为1}}if(l) ans1–; // 如果左区间有点ans1减1if® ans1–; // 如果右区间有点ans1减1coutmin(ans1,ans2)endl; // 输出两个答案中的较小值}return 0;
}
//3 2 1 5 4
//3 4 5 1 2
/abcabcabc/
这里用到了map来存储对应的地图值暴力遍历的。 C 按闹分配 ## 增加的不满意度就是 tc*排在鸡后面的人数给定了最大不满意度所以可以算出来最多人数为m/tc。向下进行取整此时再将排在鸡前面的时间加起来再加上鸡需要的时间就是最早的时间了。AC代码
#includebits/stdc.h#define int long long
#define IOS ios::sync_with_stdio(false),cin.tie(0),cout.tie(0)using namespace std;const int N 1e510;int t[N],s[N];
int tt[N],ss[N];signed main(){IOS;int n,q,tc;cin n q tc;for(int i1;in;i){cin t[i];}sort(t1,t1n);for(int i1;iq;i){int m;cin m;int ans0;int wm/tc;for(int i1;in-w;i) anst[i];cout anstc \n;}return 0;
}
- 上一篇: 祁阳做网站网站建设程序员做什么
- 下一篇: 其它区便宜营销型网站建设南县网站建设推荐
相关文章
-
祁阳做网站网站建设程序员做什么
祁阳做网站网站建设程序员做什么
- 技术栈
- 2026年03月21日
-
齐齐哈尔做网站宿迁经济技术开发区属于哪个区
齐齐哈尔做网站宿迁经济技术开发区属于哪个区
- 技术栈
- 2026年03月21日
-
齐齐哈尔北京网站建设seo管理系统培训运营
齐齐哈尔北京网站建设seo管理系统培训运营
- 技术栈
- 2026年03月21日
-
其它区便宜营销型网站建设南县网站建设推荐
其它区便宜营销型网站建设南县网站建设推荐
- 技术栈
- 2026年03月21日
-
奇缦科技珠海网站建设优化怎么开小程序
奇缦科技珠海网站建设优化怎么开小程序
- 技术栈
- 2026年03月21日
-
琪觅公司网站开发wordpress中文附件
琪觅公司网站开发wordpress中文附件
- 技术栈
- 2026年03月21日






