2019NEFU寒假集训新生考试 2020.1.6
2019NEFU寒假集训新生考试 2020.1.6
为期一周的的培训终于面临尾声,就以一场考试告终吧。
A 28的因子
其实这道题即为 n=4·a+7·b是否有解?
如果有解,则求出b最大的那组解。
#include <bits/stdc++.h>
using namespace std;
void put_char(char a,int b)
{while(b--)putchar(a);
}
int main()
{ios::sync_with_stdio(0);int n,x,y,z;while(cin>>n){x=n/7;y=n-7*x;z=y/4;for(;x>=0;x--){y=n-7*x;if(y%4==0){z=y/4;break;}}if(y%4==0){put_char('4',z);put_char('7',x);printf("\n");}elseprintf("xinganheixiong\n");}return 0;
}
B 陈老师发奖金
5
11 90 99 80
22 87 66 91
44 90 99 80
55 67 89 64
66 78 89 98
Sample Output
22 197
33 188
11 186
典型的结构体排序
#include <bits/stdc++.h>
using namespace std;
typedef struct{int sx,c,yy;int sum,num,q;
}stu;
bool cmp(stu a,stu b)
{if(a.sum!=b.sum) return a.sum>b.sum; //先按sum从大到小排序if(a.yy!=b.yy) return a.yy>b.yy; //再按英语从大到小排序return a.q>b.q; //最后按序号从小到大排序
}
stu a[100005];
int main()
{ios::sync_with_stdio(0);int n;while(cin>>n){for(int i=0;i<n;i++)cin>>a[i].num>>a[i].c>>a[i].yy>>a[i].sx,a[i].sum=a[i].c+a[i].sx,a[i].q=i;if(n<=4){sort(a,a+n,cmp);for(int i=0;i<n;i++)cout << a[i].num << " " << a[i].sum << endl;}else{sort(a,a+n,cmp);for(int i=0;i<4;i++)cout << a[i].num << " " << a[i].sum << endl;}}return 0;
}
C 小明分蛋糕
简单一想,就能发现规律
如果差5个蛋糕,则+5,需要1步
如果差4个蛋糕,则+2+2,需要2步
如果差3个蛋糕,则+2+1,需要2步
如果差2个蛋糕,则+2,需要1步
如果差1个蛋糕,则+1,需要1步
那么所需的步骤数就是|b-a|/5加上1或2
#include <bits/stdc++.h>
using namespace std;
int a,b,cha,chu;
int main()
{ios::sync_with_stdio(0);int t;while(cin>>t){while(t--){cin>>a>>b;cha=a<b?b-a:a-b;chu=cha/5;switch(cha%5){case 1: case 2: chu+=1; break;case 3: case 4: chu+=2; break;default: break;}printf("%d\n",chu);}}return 0;
}
D 神奇的事情发生了
典型的栈的模板题
#include <bits/stdc++.h>
using namespace std;
char a[110];
int main()
{ios::sync_with_stdio(0);stack<char>s1,s2;char b='O';while(cin>>a){int len=strlen(a);for(int i=0;i<len;i++){if(s1.empty())s1.push(a[i]);else{if(s1.top()=='o'&&a[i]=='o'){ //合并成Os1.pop();if(s1.empty()||s1.top()!='O')s1.push(b);else if(s1.top()=='O') //如果后面也是O,则将O清出栈s1.pop();}else if(s1.top()=='O'&&a[i]=='O')s1.pop();elses1.push(a[i]);}}while(!s1.empty()){s2.push(s1.top());s1.pop();}while(!s2.empty()){printf("%c",s2.top());s2.pop();}printf("\n");}return 0;
}
E jwMM选酒店
两个数组分别存放 对应颜色可以住的旅店 和 不可以住的旅店
即 可喝奶茶店前方和后方对应颜色的旅店数量
当前旅店楼下奶茶店 不可以喝时对应颜色不可住旅店 +1
当前旅店楼下奶茶店 可以喝时将所有颜色不可住旅店记为可住旅店
同时 答案加上前方所有可以住的旅店 即可
#include <bits/stdc++.h>
using namespace std;
int main()
{long long ans=0;int n,m,pp,color,cost,a[50]={0},b[50]={0};scanf("%d %d %d",&n,&m,&pp);for(int i=0;i<n;i++){scanf("%d %d",&color,&cost);if(cost>pp){b[color]++;ans+=a[color];}else{ans+=a[color]+b[color];for(int j=0;j<m;j++){a[j]+=b[j];b[j]=0;}a[color]++;}}printf("%lld\n",ans);return 0;
}
F jwMM的射箭游戏
#include <bits/stdc++.h>
using namespace std;
int gcd(int a,int b)
{return b?gcd(b,a%b):a;}
int main()
{ios::sync_with_stdio(0);int x1,x2,y1,y2,cha,x;while(cin>>x1>>y1>>x2>>y2){cha=x2-y2;x=gcd(x1,y1);if(cha>0&&gcd(cha,x)>1) //注意判断cha>0printf("Y\n");elseprintf("N\n");}return 0;
}
G 丹青玩游戏
数据范围:
1≤n,m≤10
1≤ki≤N
Pi为0或1
所有输入均为整数。
Output
输出一个整数,表示总的开关组合数量。
Sample Input
2 2
2 1 2
1 2
0 1
5 2
3 1 2 5
2 2 3
1 0
Sample Output
1
0
8
#include <bits/stdc++.h>
using namespace std;int main()
{ios::sync_with_stdio(false);int mapp[11][11]={0},sta[11],ans;int n,m,tmp,t,cnt,ok;while(cin>>n>>m){ans=0;memset(mapp,0,sizeof(mapp));for(int i=1;i<=m;i++){cin>>tmp;for(int j=1;j<=tmp;j++){cin>>t;mapp[i][t]=1;}}for(int i=1;i<=m;i++)cin>>sta[i];for(int i=0;i<1<<n;i++){ok=0;for(int j=1;j<=m;j++){cnt=0; for(int k=1;k<=n;k++)if((i&1<<(k-1))&&mapp[j][k]) cnt++;if(cnt%2!=sta[j])break;ok++;}if(ok==m)ans++;}cout<<ans<<endl;}return 0;
}
H 分糖果
#include <bits/stdc++.h>
using namespace std;
int a[200005];
int main()
{int T,n,m,i,ans,x;scanf("%d",&T);while(T--){ans=-1;scanf("%d%d",&n,&m);for(i=0;i<n;i++){scanf("%d",&a[i]);a[i]%=m;}sort(a,a+n);for(i=0;i<n;i++){x=m-a[i];x=lower_bound(a,a+n,x)-a;if(x-1>=0)//防止越界{if(x-1!=i)//如果前一位不是它本身就与前一位相加判断ans=max(a[i]+a[x-1],ans);else if(x-2>=0)//前一位是它本身就再往前一位相加判断ans=max(a[i]+a[x-2],ans);}if(i!=n-1)//这里如果没有取到x为m-a[i]-1的话就不一定是最优解 所以和最后一个数相加判断ans=max((a[i]+a[n-1])%m,ans);}printf("%d\n",ans);}
}
I 抹发胶
#include <bits/stdc++.h>
using namespace std;
int a[105],b[105];
int main()
{ios::sync_with_stdio(0);int t,n;while(cin>>t){while(t--){cin>>n;memset(b,0,sizeof(b));for(int i=1;i<=n;i++)cin>>a[i];for(int i=1;i<=n;i++){for(int j=1;j<i;j++){if(a[j]<a[i])b[i]++;}}for(int i=1;i<=n;i++){if(i==1) printf("%d",b[i]);else printf(" %d",b[i]);}printf("\n");}}return 0;
}
J 天哥的难题
A | B | A+B | A或B |
---|---|---|---|
0 | 0 | 0 | 0 |
0 | 1 | 1 | 1 |
1 | 0 | 1 | 1 |
1 | 1 | 10 | 1 |
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=1000000007;
ll quickmod(ll a,ll b) //快速幂取余
{ll jie=1;while(b){if(b&1)jie=jie*a%N;a=a*a%N;b/=2;}return jie;
}
int main()
{ios::sync_with_stdio(0);ll n;while(cin>>n)cout << quickmod(3,n) << endl;return 0;
}
K 煊哥的数字游戏
本题思路:
观察题中所给公式 a1+a2+…+am+b = 2*(a1 ⊕ a2 ⊕ … ⊕ am ⊕ b)
整理得到 a1+a2+…+am + b = 2·(a1 ⊕ a2 ⊕ … ⊕ am) ⊕ 2·b
设 sum = a1+a2+…+am as = 2·(a1 ⊕ a2 ⊕ … ⊕ am)
方程转化为 sum + b = as ⊕ 2·b
想办法使 sum = as ,即 使 sum 与 as 的各二进制位对应相等
当 sum 与 as 不同时,利用积分的思想每次处理一个二进制位,
模拟等式左右两侧 +b 和 ⊕ 2·b 的过程 直到 sum 与 as 相等
其中由于异或 2·b 难以处理,因此 等式右边直接异或 tmp
等式左边 +b 时 + tmp/2 使等式成立
当 sum 与 as 相同时,用处理后的 sum 减去 sum 的初始值 即可
#include <bits/stdc++.h>
using namespace std;
int main()
{long long sum=0,as=0,a,i=0,tmp; int m;scanf("%d",&m);while(m--){scanf("%d",&tmp);sum+=tmp;as^=tmp;}as*=2;a=sum;while(sum!=as){i++;tmp=(long long)1<<i; //此处必须强制转换为long longif(sum%tmp!=as%tmp){sum+=tmp>>1;as^=tmp;}}printf("%lld",sum-a);return 0;
}
L 吃辣条
#include <bits/stdc++.h>
using namespace std;
int a[110];
int main()
{ios::sync_with_stdio(0);int n;while(cin>>n){for(int i=1;i<=n;i++)cin>>a[i];sort(a+1,a+n+1);printf("%d %d\n",a[n-1],a[2]);}return 0;
}
2019NEFU寒假集训新生考试 2020.1.6相关推荐
- 2019寒假集训新生考试 【持续更新中】
2019寒假集训新生考试-NEFU 0107 emoji表情包 Problem A nefu 2101 28的因子 ⭐️ 本题使用暴力枚举,统计n可以分成几个4和7, 为了防止TLE ,先统计4的个数 ...
- 2019寒假集训新生考试
序言: 为期一周的欢乐的寒假集训终于结束了,很高兴能认识这么多的大佬和学长.学姐.很感谢ljw学长和陈宇老师为我们寒假培训所作出的贡献. 简单点评一下今天的考试试题,就在比赛前的中午,jlw学长说题目 ...
- NEFU 大一寒假2.15考试 2020.02.15
Summary 昨天的 题目预测 准确率 1/7=14.29%,也算是意料之中吧. 毕竟是个考试嘛,而且似乎可能差不多已经暴露了预测吧. 什么?你没看到昨天的题目预测?再仔细观察一下那个 peach ...
- 2020.02.22寒假集训考试
序言: 寒假就要结束了,马上就要上网课了,剩下的时间就要复习和预习大一下的知识了,博客可能暂时停更了,谢谢大家的观看.武汉加油!中国加油! 今天是寒假集训的最后一次考试了,题很不错,思维题较多 ...
- 关于构造和二进制,题目:牛牛的DRB迷宫Ⅱ(源自牛客竞赛2020年寒假集训)
关于构造和二进制,题目:牛牛的DRB迷宫Ⅱ(源自牛客竞赛2020年寒假集训) 题目: 链接:https://ac.nowcoder.com/acm/contest/3004/B 来源:牛客网 题目描述 ...
- 寒假集训三(暴力枚举)2020.01.02(11题)
寒假集训三(暴力枚举)id :521 Problem:A 二倍的问题 Description 给定2到15个不同的正整数,你的任务是计算这些数里面有多少个数对满足:数对中一个数是另一个数的两倍.比如给 ...
- 2023寒假集训通知
各位家长,各位同学,新年好! 过去的2022是我们编程学习,算是比较成功的一年.大家跟着我们的团队进行了约一年的培训,很有收获.纵观全年: 1.寒假我们认真集训了24天 2.三四月间参加了人工智能学会 ...
- [SUCTF2018]babyre [ACTF新生赛2020]fungame
文章目录 [SUCTF2018]babyre 惯用思维 常人思维 GAMEOVER [ACTF新生赛2020]fungame int __cdecl sub_401340(int a1) int __ ...
- DP\记忆化搜索-牛客寒假集训营3-牛牛的DRB迷宫I
DP-牛客寒假集训营3-牛牛的DRB迷宫I 题目: 题意: 求迷宫问题的方案数量.与--求迷宫问题的方案数量.与--求迷宫问题的方案数量.与--DP题型总结中的<摘花生>类似.中的< ...
最新文章
- java日志切割工具_用 Java 实现的日志切割清理工具
- Android 快捷方式的创建与查询 快捷方式问题大全 获取快捷方式在Launcher数据库中的信息 Failed to find provider info for com.android.la
- 011_AOP注解开发
- Lua——table(表)的使用
- LeetCode 831. 隐藏个人信息
- Linux Note
- 华为官方强制线刷工具_一加8/8Pro 线刷救砖
- C++ Primer 第五版 第6章 6.3——函数返回类型和return语句阅读笔记
- java虚拟机之一内存运行时数据区域解释
- JavaScript的初步探索(JS的入坑笔录)
- 查看各类型数据库版本的SQL(Oracle/DB2/SQL Server/PG/MySQL)
- 「镁客早报」小米“10亿赌约”输给格力;SpaceX本周将首次试飞新飞船...
- Bootstrap 轻量级后台管理系统模板--ACE使用介绍
- Atitit 减少财政支出之减少通讯支出 解决方案attilax总结
- 2008r2 php mysql_Win2008R2IIS7.5+PHP5(FastCGI)+MySQL5环境搭建教程_MySQL
- c语言驾校信息管理系统,驾校综合信息管理系统
- 程序员相亲被大三岁的富婆姐姐看上,让他当《杭州赘婿》
- 嵌入式设备的switch 以及PHY 芯片调试和选型 (1)
- PetShop的系统架构设计(转Bruce Zhang(wayfarer) )
- Learning to See in the Dark阅读札记
热门文章
- 虚拟服务器IP地址创建,虚拟服务器的ip地址
- android oreo 老机型,三年的老机型,一加手机1也有安卓8.0了!
- BusyBox v1.22.1 (Ubuntu 1:1.22.0-15ubuntu1) built-in shell (ash) 开机黑屏
- 动漫制作都用html5吗,怎么制作h5动画?
- java连接redis存取数据(详细)
- 别人笑我太疯癫,我笑他人看不穿。
- 中规中矩的输入两个正整数m和n,求其最大公约数和最小公倍数。
- 【hadoop生态之Hive】Hive的查询语言【笔记+代码】
- 阿里万亿交易量级下的秒级监控
- 小程序源码:简单舒服新UI装逼制作神器