2017-07-22 模拟赛
思路
对于一个数的后k位,在进行计算时,对他造成影响的只有后k位。由于给出的数据很大,所以我们再进行计算时算一次对算出的结果进行取模。这样我们就可以保证它不爆 long long 了 还有在最后进行处理的时候要把每一个数都存在一个数组中,然后不够的补0
代码
#include<cstdio> #include<cstdlib> #include<cstring> #include<iostream> #include<algorithm> #define N 100001 using namespace std; long long n,x,k,l,ans; long long a[N],b[N],c[14]; long long read() {long long x=0,f=1;char ch=getchar();while(ch<'0'||ch>'9') {if(ch=='-')f=-1;ch=getchar();}while(ch>='0'&&ch<='9'){x=x*10+ch-'0'; ch=getchar();}return x*f; } long long pow(long long x,long long y) {long long sum=1;while(y){if(y&1) sum=(sum*x)%k;x=(x*x)%k; y>>=1;}return sum; } int main() {freopen("digits.in","r",stdin);freopen("digits.out","w",stdout);n=read(),k=read(); l=k;k=1;for(int i=1;i<=l;i++) k*=10;for(int i=1;i<=n;i++)a[i]=read()%k,b[i]=read();x=read();x%=k;for(int i=1;i<=n;i++)ans=(ans+a[i]*pow(x,b[i])%k)%k;for(int i=l;i>=1;i--)c[i]=ans%10,ans/=10;for(int i=1;i<=l;i++)printf("%d\n",c[i]);return 0; }
思路:
这道题在考试的时候我用的暴力枚举做的30分的部分分
先看看这个代码??
#include<cstdio> #include<cstdlib> #include<cstring> #include<iostream> #include<algorithm> using namespace std; int n,x1,x2,x3,x4,x5,x6,ans; int read() {int x=0,f=1; char ch=getchar();while(ch<'0'||ch>'9'){if(ch=='-') f=-1; ch=getchar();}while(ch>='0'&&ch<='9') {x=x*10+ch-'0'; ch=getchar();}return x*f; } int main() {freopen("equation.in","r",stdin);freopen("equation.out","w",stdout);n=read();x1=read(),x2=read(),x3=read(),x4=read(),x5=read(),x6=read();for(int a=1;a<=n;a++)for(int b=1;b<=n;b++)for(int c=1;c<=n;c++)for(int d=1;d<=n;d++)for(int e=1;e<=n;e++)for(int f=1;f<=n;f++)if(x1*a-x2*b+x3*c-x4*d+x5*e-x6*f==0)ans++;printf("%d",ans);return 0; }
此时大佬像渣渣投来鄙视的眼神!(大佬:靠,这道题那么水你竟然只会部分分?!)
(⊙o⊙)…
好吧,来,大佬讲讲这答题吧....
大佬:哼,我讲就我讲!(鄙视。。。。)
我们来看这个题给出的方程:a1.x1-a2.x2+a3.x3-a4.x4+a5.x5-a6.x6=0
可以移项为a1.x1+a3.x3+a5.x5=a2.x2+a4.x4+a6.x6
然后我们用三个for循环来把等号前面的结果给记录下来。
然后再用三个for循环来判断等号后面的数是否和前面的数相等,这样我们就可以ac了!
(大佬再次投来鄙视的眼神。。)
渣渣表示无奈。。。。。
好了,来看看满分代码吧。
代码:
#include<map> #include<cstdio> #include<cstdlib> #include<cstring> #include<iostream> #include<algorithm> using namespace std; int n,x1,x2,x3,x4,x5,x6,ans; map<int,int>ma; int read() {int x=0,f=1; char ch=getchar();while(ch<'0'||ch>'9'){if(ch=='-') f=-1; ch=getchar();}while(ch>='0'&&ch<='9') {x=x*10+ch-'0'; ch=getchar();}return x*f; } int main() {freopen("equation.in","r",stdin);freopen("equation.out","w",stdout);n=read();x1=read(),x2=read(),x3=read(),x4=read(),x5=read(),x6=read();for(int a=1;a<=n;a++)for(int b=1;b<=n;b++)for(int c=1;c<=n;c++)ma[x1*a+x3*b+x5*c]++;for(int i=1;i<=n;i++)for(int j=1;j<=n;j++)for(int k=1;k<=n;k++)ans+=ma[x2*i+x4*j+x6*k];printf("%d",ans);return 0; }
思路:
我们在看着道题的时候,他让求最长路径最短。我们先sort一遍那么最长的路径一定就是最后走的了(为什么啊??大佬:白痴,都sort了,你说呢? 哼,白眼)我们在跑一边最小生成树不就好了吗??先把小的边加进去,那么最后到达终点的时候不就一定是最大的了吗??(恩,好像是。ORZ)
代码:
#include<cmath> #include<cstdio> #include<cstdlib> #include<cstring> #include<iostream> #include<algorithm> using namespace std; #define maxn 333444 int if_z,tot,ans,n,m,k,x,y,z; int fa[maxn]; bool flag; char Cget; struct Edge {int l,r,w; }edge[maxn]; int read() {int x=0,f=1; char ch=getchar();while(ch<'0'||ch>'9'){if(ch=='-') f=-1; ch=getchar();}while(ch>='0'&&ch<='9') {x=x*10+ch-'0'; ch=getchar();}return x*f; } bool cmp(Edge a,Edge b) {return a.w<b.w; } int find(int x) {return x==fa[x]?x:fa[x]=find(fa[x]); } int main() {//freopen("graph.in","r",stdin);//freopen("graph.out","w",stdout);n=read();m=read();k=read();for(int i=1;i<=m;i++) {edge[i].l=read();edge[i].r=read();edge[i].w=read();}for(int i=1;i<=n;i++) fa[i]=i;sort(edge+1,edge+m+1,cmp);for(int i=1;i<=m;i++){int fx=find(edge[i].l); int fy=find(edge[i].r);if(fx!=fy){fa[fx]=fy;tot++;ans=edge[i].w;}if(find(1)==find(n)){printf("%d",edge[i].w);flag=true;break;}if(tot==n-1)break;}if(!flag)printf("-1");return 0; }
转载于:https://www.cnblogs.com/z360/p/7221779.html
2017-07-22 模拟赛相关推荐
- 2021.07.22禾赛提前批一面面经
2021.07.22禾赛提前批一面面经 1.LUTRAM的意思 2.LUTRAM和block RAM的区别 3.时序约束和时序优化 4.跨时钟域 5.为什么不能多bit采用同步寄存器打两拍(就这个问题 ...
- 2022.07.16模拟赛总结
7.16模拟赛总结 总述 题目详情 T1 取餐号 T2 堆人塔 T3 钦定IOI选手 20pts做法 100pts做法 T4 攻打恶魔之巅 水水版DP T5 抉择 暑假集训模拟赛Day1 总述 真想不 ...
- 2017/11/3模拟赛
块(block) [问题描述] 拼图达人小 C 手里有 n 个 1*1 的正方形方块, 他希望把这些方 块拼在一起, 使得拼出的图形周长最小, 要求方块不能重叠. 擅长拼 图的小 C 一下就求出了这个 ...
- 2017.10.26模拟赛day1
-- T1为爱追寻 问题描述 历经了半年的停课之后,紫萱学姐回到了陌生又熟悉的班里,她想找到学长的位置.于是她决定采用一种高效率的寻找方法:瞎找法. 我们将学姐的班级视为一个二维平面,每个整数坐标对应 ...
- 洛谷P1667/[10.22 模拟赛] 数列 (思维+模拟)
洛谷P1667 数列 题目描述 给定一个长度是n的数列A,我们称一个数列是完美的,当且仅当对于其任意连续子序列的和都是正的.现在你有一个操作可以改变数列,选择一个区间[X,Y]满足\(A_X +A_{ ...
- 2017蓝桥杯模拟赛-算年龄
问题 英国数学家德摩根出生于19世纪初叶(即18xx年). 他年少时便很有才华.一次有人问他的年龄,他回答说: "到了x的平方那年,我刚好是x岁". 请你计算一下,德摩根到底出生在 ...
- GMOJ - 2021.07.20【普及组】模拟赛C组 - 排座椅(seat)、传球游戏(ball)、立体图(drawing)、间谍派遣、seek
文章目录 luogu博客链接 GMOJ - 2021.07.20[普及组]模拟赛C组 - 排座椅(seat).传球游戏(ball).立体图(drawing).间谍派遣.seek T1 排座椅(seat ...
- CCAI 2017 | 德国DFKI科技总监Hans Uszkoreit:如何用机器学习和知识图谱来实现商业智能化? 原2017.07.25AI科技大本营 文/CSDN大琦 7 月22 - 2
CCAI 2017 | 德国DFKI科技总监Hans Uszkoreit:如何用机器学习和知识图谱来实现商业智能化? 原2017.07.25AI科技大本营 文/CSDN大琦 7 月22 - 23 日, ...
- 2017.6.11 校内模拟赛
题面及数据及std(有本人的也有原来的) :2017.6.11 校内模拟赛 T1 自己在纸上模拟一下后就会发现 可以用栈来搞一搞事情 受了上次zsq 讲的双栈排序的启发.. 具体就是将原盘子大小cop ...
- NOIP2017模拟赛总结(2017.10.30-2017.11.1)
第三篇博客,放上2017.10.30-2017.11.1的题. 2017.10.30 Problem A 题目大意: 有一排nnn棵果树和一个容量为sss的果篮,从前往后摘果,如果当前果树的果子数量不 ...
最新文章
- 这三年被分布式坑惨了,曝光十大坑
- 福利 | NVIDIA英伟达免费直播课:带你选择、搭建AI服务器!
- 关于汉诺塔非递归算法的一点思考
- Spring Boot教程(7) – 直观地理解Spring容器
- 我对CSS vertical-align的一些理解与认识(二)
- Java的位运算符——与()、非(~)、或(|)、异或(^)
- 我说省略号然后点点点点点点
- 特斯拉Model Y发布,售价3.9万美元起,马斯克:年底实现全自动驾驶
- Linux系统-小倒腾之Linux DIY定制裁剪(New kernel+Busybox)o_o(二)
- 无界面和应用图标的应用程序
- 化解字符串不能超过8000的方法及交叉表的处理
- 关于使用Cobalt Strike制作宏病毒
- 附件在线预览控件实现的市场调研
- 雷达图分析法(转载)
- asp.net实现一个简易购物车功能。
- 土地利用分类详细教程——以高分一号影像为例(上)
- windows7交互式服务检测如何禁用?
- 出租车捧红嘀嗒?这个似乎是一个谎言
- linux驱动:二、LED灯驱动编写
- React Hook的用法: State + Effect(一)
热门文章
- Java学习从入门到精通[转]
- 数学建模(5)---煤矸石堆积问题
- 设计模式的七大设计原则:其五:开闭原则
- Java继承、封装、多态
- 如何使用JMeter 对Dubbo接口进行测试
- 暗棋单机版_中国暗棋游戏下载-中国暗棋下载v1.0.0 安卓版-单机手游网
- mysql命令导出数据不完整_使用MySQL MySqldump命令导出数据时的注意事项
- layui让文字和div平行_layui富文本的使用注意事项以及拓展
- sendmsg返回值_[求助]怎么处理sendmessage的返回值
- c语言堆栈基本代码入栈出栈_几道和「堆栈、队列」有关的面试算法题