题目1001
      大意:已知$n$个角色,$m$种怪物种族,$k$个怪物,给出一组角色编号,编号$P_{i}$的角色能肝死编号$i$的怪物,对于给定的一组怪物编号,为了打通关,求切换角色的次数。另外初始默认第$1$个角色上场。
      思路:模拟水题,没啥好说的,先随便弄个数组比如叫$monitors$,于是$monitors[i] = P_{i}$,然后去肝那群怪,初始变量$actor = 1$,循环每次读一个怪物编号$x$,如果$monitors[x] \neq actor$,说明当前角色$actor$并不能肝死这只编号$x$的怪,切换次数$count + 1$,当前角色$actor$改为$monitors[x]$,然后就下一次循环了。
      非官方代码:

 #include <stdio.h>

 int main()
{
int T, n, m, k, act[];
scanf("%d", &T);
while(T--) {
scanf("%d%d%d", &n, &m, &k);
for(int i=; i<=m; i++)
scanf("%d", act+i);
int t=, x, res=;
for(int i=; i<k; i++) {
scanf("%d", &x);
if(t!=act[x]) {
t=act[x];
++res;
}
}
printf("%d\n", res);
}
return ;
}

1001

      题目1002
      大意:自己理解吧,懒得打了。
      思路:在给定的$n \times m$矩阵里,行代表角色,列代表怪物,对应元素就是该行角色打败该列怪物所需时间,那就找出每列的最小值,最后根据怪物编号累加一下时间即可。拿一维数组就够了,读入的同时求最小值,因此不用保存二维的信息。
      非官方代码:
 #include <stdio.h>

 int main()
{
int T, n, m, k, tme[], t;
scanf("%d", &T);
while(T--) {
scanf("%d%d%d", &n, &m, &k);
for(int i=; i<=m; i++)
scanf("%d", tme+i);
for(int i=; i<n; i++)
for(int j=; j<=m; j++) {
scanf("%d", &t);
if(tme[j]>t)
tme[j]=t;
}
int res=;
for(int i=; i<k; i++)
scanf("%d", &t),
res+=tme[t];
printf("%d\n", res);
}
return ;
}

1002

      题目1003
      大意:没有大意,就是求方程,详细要求自己看去。
      思路:这题不难,真的不难,真的真的不骗你。但搞起来麻烦= =|||首先慢慢来,别想太多,一个一个字符读入,转成数字会吧?标记个小数点的状态就可以读小数了,不会自己单独尝试下。然后读入到$x$或者其他符号比如$+$、$-$、$=$你就要停止一下,把读入的数字加到相应的$a$、$b$、$c$上。所以不是碰到$x$停止的,请加到$c$上,碰到$x$停止的,判断下一个是不是^,是就加到$a$上,否则加到$b$上。那判断^的时候,如果没有^,而是$+$、$-$、$=$怎么办?这里也拿两个状态,比如碰到$+$则$neg = false$,碰到$-$则$neg = true$,碰到$=$则$eql = true$,注意如果$eql$为$true$则符号是要反一下的,因为我们默认移项到$=$的左边。于是前面读数字那里应该利用这两个状态判断正负性。最后根据总共的$a$、$b$、$c$拿公式求一下就好了,代码懒得打所以没有。如果你们能领悟$C$的精髓——函数式编程,不要把所有代码都挤在$main()$里,分开几个函数写,思路是很容易理清的。
      当然你也可以拿字符串函数乱搞,把数字提取出来,不过思路不清晰会坑死自己,而且这种方法的时间常数大点,也就是说运行耗时会长一点点。
 
 
      题目1004
      大意:数位只有两个:$5$和$8$,其中$88888888888888888888$为最小,$55555555555555555555$为最大,请根据给定数字,求它是这样的数字中是第几大的。
      思路:这很简单,$5 > 8$,那$5$和$8$分别改成$1$和$0$不就是二进制了吗?....有一点要注意一下,是求在这种数字中的顺序,而不是求输入的数字中的顺序....不过题目要求第几大,也可以为避免麻烦,设置$5$和$8$分别对应$0$和$1$,这样直接把得到的二进制数转成十进制就可以输出辣。判断$5$和$8$的方法可以直接判断,也可以根据奇偶性判断。
      非官方代码:
 #include <stdio.h>

 int main()
{
int T, m=<<;
char N[];
scanf("%d", &T);
while(T--) {
int x=;
scanf("%s", N);
for(int i=; i<; i++) {
x<<=;
if(N[i]=='')
x|=;
}
printf("%d\n", m-x);
}
return ;
}

1004

      题目1005
      大意:自己看题目去。
      思路:求助你的数学老师。最后得到公式:$m \times m \div n + m - n$。但很不幸由于出题人太水,所以数据精度出了点问题,大部分姿势不对的情况下你大概要减去一个误差才行。。
      非官方代码:
 #include <stdio.h>

 int main() {
int T, n, m;
scanf("%d", &T);
while(T--) {
scanf("%d%d", &n, &m);
printf("%.2lf\n", .*m*m/n+m-n-1E-);
}
return ;
}

1005

      题目1006
 
 
      题目1007
 
 
      题目1008
      题意:每次初始$A$是$0$,$B$是$1$,$+$代表$A = A + 1$,$\ast$代表$B = A \ast B$,求最后$B$会是多少?
      思路:首先判一下极限情况,发现$16$个$+$与$16$个$\ast$的情况会使$B$达到最大:$16^{16} = 2^{64}$,超过long long的范围,甚至unsigned long long都被爆掉了,于是只好用long double类型,当然你也可以考虑用大数......
      非官方代码:
 #include <stdio.h>
#include <iostream>
using namespace std; int main() {
int rd, A=;
long double B=;
cout.precision();
cout<<fixed;
while(~(rd=getchar())) {
if(rd=='\n') {
cout<<B<<endl;
A=; B=;
}
else if(rd=='+')
++A;
else if(rd=='*')
B*=A;
}
return ;
}

1008

      题目1009
      题意:没啥好说的。
      思路:没啥好说的。
      非官方代码:玩玩又不会怀孕对吧。
 #include <iostream>

 template<int N> struct czj { czj<N-> oyk; czj() { std::cout << N << std::endl; } };

 template<> struct czj<> { };

 czj<> wwj;

 int main() { }

1009

      题目1010
      题意:我选择死亡。
      思路:首先你要知道各个寄存器怎么转成$Hex$先,然后你需要一定的英文水平或者一定的搜索技巧,强行学会ModR/M和SIB编码,然后就可以搞出来了。
 
 
      题目1011
      题意:给出若干个点,按顺序求出两点间的距离,的总和。
      思路:这很简单,高中数学搞搞就是了,可是这输入格式是要闹哪样?(╯‵□′)╯︵┻━┻ 另外注意一下起点是第一个点,而不是(0,0,0)。
      非官方代码:
 #include <stdio.h>
#include <math.h> int main() {
int T;
scanf("%d%*c", &T);
for(int cse=; cse<=T; cse++) {
int r, a, b, c, x, y, z;
double res=.;
printf("Case #%d: ", cse);
scanf("%*c%d,%d,%d%*c", &a, &b, &c);
while(r=getchar(), r!='\n') {
scanf("%*c%d,%d,%d%*c", &x, &y, &z);
a-=x; b-=y; c-=z;
res+=sqrt(a*a+b*b+c*c);
a=x; b=y; c=z;
}
printf("%.3f\n", res);
}
return ;
}

1011

SCNU 2015ACM新生赛初赛【1001~1011】个人解题思路的更多相关文章

  1. SCNU 2015ACM新生赛初赛【1007. ZLM的扑克牌】解题报告

            题目链接详见SCNU 2015新生网络赛 1007. ZLM的扑克牌 .         其实我在想这题的时候,还想过要不要设置求最小的排列,并且对于回文数字的话,可以把扑克牌折起来( ...

  2. SCNU 2015ACM新生赛初赛【1006. 3D打印】解题报告

            题目链接详见SCNU 2015新生网络赛 1006. 3D打印 .出题思路来自codevs 3288. 积木大赛,属于模拟题.         首先我们把“选择从第L部分到第R部分”理 ...

  3. SCNU 2015ACM新生赛决赛【F. Oyk闯机关】解题报告

            题目大意:一个$N$$\times$$N$的阵列,每个格子有$X_{ij}$个调和之音,若每次只能选择走右边或下边,从左上角出发走到右下角,问最多能收集到多少个调和之音?       ...

  4. SCNU ACM 2016新生赛初赛 解题报告

    新生初赛题目.解题思路.参考代码一览 1001. 无聊的日常 Problem Description 两位小朋友小A和小B无聊时玩了个游戏,在限定时间内说出一排数字,那边说出的数大就赢,你的工作是帮他 ...

  5. SCNU ACM 2016新生赛决赛 解题报告

    新生初赛题目.解题思路.参考代码一览 A. 拒绝虐狗 Problem Description CZJ 去排队打饭的时候看到前面有几对情侣秀恩爱,作为单身狗的 CZJ 表示很难受. 现在给出一个字符串代 ...

  6. 贪心 赛码 1001 Movie

    题目传送门 /* 贪心:官方题解: 首先我们考虑如何选择最左边的一个区间 假设最左边的区间标号是i, 那选择的另外两个区间的左端点必定要大于Ri 若存在i之外的j, 满足Rj<Ri, 那么另外两 ...

  7. Codeforces 801 A.Vicious Keyboard & Jxnu Group Programming Ladder Tournament 2017江西师大新生赛 L1-2.叶神的字符串

    A. Vicious Keyboard time limit per test 2 seconds memory limit per test 256 megabytes input standard ...

  8. [ACTF2020 新生赛]BackupFile && [ACTF2020 新生赛]Upload &&[GYCTF2020]Blacklist

    [ACTF2020 新生赛]BackupFile 尝试找到源代码,加上题目是备份文件,猜测备份文件里面有网站的源代码,御剑扫描一下,就扫到index.php 访问index.php.bak 下载源代码 ...

  9. [BUUCTF]REVERSE——[ACTF新生赛2020]Oruga

    [ACTF新生赛2020]Oruga 附件 步骤: 例行检查,64位程序,无壳 64位ida载入,检索字符串,根据提示来到关键函数 14行~18行就是让字符串的前5位是 actf{ ,sub_78A( ...

随机推荐

  1. vue.js 开发生态总结

    ---title: Vue 1.0 的技术栈date: 2016-09-26 00:48:50tags:category:--- ## vuejs概述 Vue.js是用于构建交互式的Web界面的库.它 ...

  2. 原生Ajax总结

    HTTP协议 传统的请求和Ajax请求 Ajax定义 Asynchronous JavaScript and XML. Ajax异步的,JavaScript程序希望与服务器直接通信而不需要重新加载页面 ...

  3. ITTC数据挖掘平台介绍(七)强化的数据库, 虚拟化,脚本编辑器

    一. 前言 好久没有更新博客了,最近一直在忙着找工作,目前差不多尘埃落定.特别期待而且准备的都很少能成功,反而是没怎么在意的最终反而能拿到,真是神一样的人生. 言归正传,一直以来,数据挖掘系统的数据类 ...

  4. React学习笔记。

    有段时间没写博客了,最近这段时间有点说不出的苦,虽然说年轻的时候该多出去经历些事,但每次找工作东跑西跑,坐公交坐地铁浪费了我太多时间,我感觉到这是一种浪费,对生命的浪费.所以很想尽快找到一份工作,去努 ...

  5. 【基于WinForm+Access局域网共享数据库的项目总结】之篇二:WinForm开发扇形图统计和Excel数据导出

    篇一:WinForm开发总体概述与技术实现 篇二:WinForm开发扇形图统计和Excel数据导出 篇三:Access远程连接数据库和窗体打包部署 [小记]:最近基于WinForm+Access数据库 ...

  6. Solr Facet 默认值

    前言 今天在用Solr Facet遇到了默认值的问题,我用Facet.field查询发现数据总共100条,刚开始没有注意,发现少个别数据,但是用这几个个别的id查询又能查出来数据.才发现是Facet默 ...

  7. 在 C# 中定义一个真正只读的 List

    C# 中的 readonly 关键字表示类中的字段只允许在定义时候或者构造方法中初始化.普通类型的数据完全可以达到预期的效果,但是在对象或者列表中,要想达到只读的效果,只用一个 readonly 关键 ...

  8. [原创]django+ldap实现统一认证部分二(python-ldap实践)

    前言 接上篇文章 [原创]django+ldap实现统一认证部分一(django-auth-ldap实践) 继续实现我们的统一认证 python-ldap 我在sso项目的backend/lib/co ...

  9. 【无私分享:ASP.NET CORE 项目实战(第十一章)】Asp.net Core 缓存 MemoryCache 和 Redis

    目录索引 [无私分享:ASP.NET CORE 项目实战]目录索引 简介 经过 N 久反复的尝试,翻阅了网上无数的资料,GitHub上下载了十几个源码参考, Memory 和 Redis 终于写出一个 ...

  10. iPhone开发学习

    Xcode6中怎么添加空工程模板  NSBundle 使用(程序的资源)     本地存储数据的简单方式:NSUserDefaults UIApplication隐藏statusBarStyle    ...