B. National Project

题意:总长度为n的公路进行维修,天气是有规律性的,连续g天的好天气,连续b天的坏天气,必须在好天气进行维护,问至少维护n的一半,那么至少需要多少天

思路:必须是g的整数倍和b的整数倍构成的天数,通过相除,假设g+b是一组,最后尾巴那算作单算

想法:1)这个数必须是g的整数倍和b的整数倍构成的,或者是直接输出n,这个限制条件是题目中没有提到,但是你必须写的

代码:

 1 #include<iostream>
2 #include<algorithm>
3 #include<cstdio>
4 #include<cmath>
5 #include<cstring>
6 using namespace std;
7 const int maxx=1e5+10;
8 int main(){
9 int t;
10 scanf("%d",&t);
11 while(t--){
12 long long int a,b,c;
13 long long int aa;
14 scanf("%lld %lld %lld",&a,&b,&c);
15
16 aa=a;
17 if(a%2==1){
18 a/=2;
19 a++;
20 }else{
21 a/=2;
22 }
23
24 if(a%b==0){
25 long long int sum=0;
26 sum=a/b*(b+c);
27 sum-=c;
28 printf("%lld\n",max(sum,aa));
29 }else{
30 long long int sum=0;
31 sum=a/b*(b+c);
32 sum+=a%b;
33 printf("%lld\n",max(sum,aa));
34 }
35 }
36
37 }

A. Common Subsequence(Codeforces Round #658 (Div. 2)

题目:题目很混乱,直接题目模糊样例入手调查猜想

思路:找两个数组中有没有共同元素,如果有直接输出1和这个元素值,如果没有就直接输出NO

代码:

 1 #include<iostream>
2 #include<algorithm>
3 #include<cstdio>
4 #include<cmath>
5 #include<cstring>
6 using namespace std;
7 int main(){
8 int t;
9 scanf("%d",&t);
10 while(t--){
11 int n,m;
12 scanf("%d %d",&n,&m);
13 int a[1500],b[1500];
14 for(int i=0;i<n;i++){
15 scanf("%d",&a[i]);
16 }
17 for(int i=0;i<m;i++){
18 scanf("%d",&b[i]);
19 }
20 int flag=0;
21 int ii=0,jj=0;
22 for(int i=0;i<n;i++){
23 flag=0;
24 for(int j=0;j<m;j++){
25 if(a[i]==b[j]){
26 flag=1;
27 ii=i;
28 jj=j;
29 break;
30 }
31 }
32 if(flag==1){
33 break;
34 }
35 }
36 if(flag==0){
37 printf("NO\n");
38 }else{
39 printf("YES\n");
40 printf("1 %d\n",a[ii]);
41 }
42 }
43 }

B. Sequential Nim

题目:取牌,分为先手和后手,问谁先取完

思路:就是看谁先取到第一个非1的数,谁就赢了

代码:

 1 #include<iostream>
2 #include<algorithm>
3 #include<cstdio>
4 #include<cmath>
5 #include<cstring>
6 using namespace std;
7 const int maxx=1e5+10;
8 int main(){
9 int t;
10 scanf("%d",&t);
11 while(t--){
12 int n;
13 scanf("%d",&n);
14 int a[maxx];
15 int flag=0;
16 int sum=0;
17 for(int i=0;i<n;i++){
18 scanf("%d",&a[i]);
19 }
20 if(n==1){
21 printf("First\n");
22 continue;
23 }
24 for(int i=0;i<n;i++){
25 if(a[i]==1){
26 sum+=1;
27 }
28 if(a[i]!=1){
29 sum++;
30 break;
31 }
32 }
33 if(sum%2==1){
34 printf("First\n");
35 }else{
36 printf("Second\n");
37 }
38
39 }
40 }

最新文章

  1. .NET Core 系列5 :使用 Nuget打包类库
  2. [每日Linux]Linux下xsell和xftp的使用
  3. 实验四 简单的PV操作
  4. Codeforces 498C Array and Operations(最大流)
  5. javascript 对象数组排序
  6. 执行config文件时,config.log中报错xcrun: error: active developer path (&quot;/Applications/Xcode.app/Contents/Developer&quot;) does not exist, use xcode-select to change
  7. 我学C的那些年[ch02]:宏,结构体,typedef
  8. C++ XML 解释库
  9. 生产环境搭建MySQL复制的教程(转)
  10. 查看mysql字符集及修改表结构
  11. [上海] 携程 门票事业部 招聘.NET 架构师 2 名 - V2EX
  12. C++基础学习笔记----第十四课(new和malloc的区别、单例模式等深入)
  13. Redis是新兴的通用存储系统-为何Redis要比Memcached好用
  14. Team Foundation Server 2015使用教程--默认团队checkin权限修改
  15. NYoj 素数环(深搜入门)
  16. Ubuntu 16.04 Django安装和配置
  17. css 小知识
  18. java线程condition
  19. UVa12325, Zombie&#39;s Treasure Chest
  20. Shell中$X的含义

热门文章

  1. java常用算法笔记
  2. 周期串(JAVA语言)
  3. DEV表格设置列不可编辑
  4. 【LiteOS】LiteOS消息队列-实战
  5. kubernetes 降本增效标准指南| 容器化计算资源利用率现象剖析
  6. vue封装公用弹出框方法,实现点击出现操作弹出框
  7. A. 1.划分数列
  8. 考前自救题库NABCD分析
  9. Ubuntu16.04下安装virtualbox,配置及卸载
  10. Django 视图(View)