小 W 学数学
【问题描述】
为了测试小 W 的数学水平,果果给了小 W N 个点,问他这 N 个点能构成的三角形个数。
【输入格式】
第一行一个整数 N,代表点数。
接下来 N 行,每行两个非负整数 X、Y,表示一个点的坐标。
【输出格式】
一个非负整数,即构成三角形个数。
【输入输出样例】
tri.in      
5          
0 0
1 0
2 0
0 1
1 1

tri.out      
9

【数据规模】
对于 20%的数据:N=3
对于另外 40%的数据:保证任意 3 点不在同一直线上
对于 100%的数据:N<=100,保证任意两点不重合,坐标<=10000

题解

暴力枚举用斜率或叉积判断是否共线,统计一下答案即可。

#include<iostream>
#include<cstdlib>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
using namespace std; int n,ans;
int x[105],y[105]; int main()
{
int i,j,k;
freopen("tri.in","r",stdin);
freopen("tri.out","w",stdout);
scanf("%d",&n);
for(i=1;i<=n;i++)
scanf("%d%d",&x[i],&y[i]);
for(i=1;i<=n;i++)
for(j=i+1;j<=n;j++)
for(k=j+1;k<=n;k++)
if((y[k]-y[j])*(x[j]-x[i])!=(y[j]-y[i])*(x[k]-x[j])) ans++;
printf("%d",ans);
fclose(stdin);
fclose(stdout);
return 0;
}

小 W 学英语
【问题描述】

为了测试小 M 的英语水平,Mr.R 让小 M 写英语作文,小 M 则把作文交给了小 W 写。然而 Mr.R 总结出了那个小 W 写作文的习惯,也就是某些关键的字符串。如果一篇作文中这若干个关键字符串都出现,他就认为这是小 W 写的。注意,小 W 可能写多篇作文。
【输入格式】
第一行一个整数 N,表示关键字符串的个数,N<=100。
接下来 N 行,每行为一个长度不超过 100 的字符串。
最后是若干段文本,每段文本以 $ 结尾。
由于写作文的人太疯狂,每篇作文最长可以达到 1350000 个字符,但作文的个数不超过 10。
【输出格式】
对于每一段文本对应一行输出。‘Yes’表示是小 W 的作文,‘No’表示不是。
请注意大小写。
【输入输出样例】
letter.in

3 i
love
m
ilovem$
lovem$

letter.out
Yes
No
【数据规模】
对于 50%的数据:N<=7

题解

AC自动机即可

感谢我学习时TonyFang提供的关于AC自动机的教材  在此分享
关于Fail指针    http://www.acyume.com/archives/19
关于AC自动机   http://blog.csdn.net/jw72jw/article/details/6843700

#include<iostream>
#include<cstdlib>
#include<cstdio>
#include<cmath>
#include<cstring>
#include<algorithm>
#include<queue>
using namespace std; int n,x,siz;
int len[110],fail[2000005],last[2000005],cnt[2000005],ch[2000005][27];
char ask[2000005],str[1005];
bool val[2000005];
queue<int> q; void ACinsert()
{
int i,p,len,c;
p=0;
len=strlen(str);
for(i=0;i<len;i++)
{
c=str[i]-'a';
if(!ch[p][c]) ch[p][c]=++siz;
p=ch[p][c];
}
val[p]=true;
} void ACgetfail()
{
int i,j,c,p,v,now;
fail[0]=0;
for(c=0;c<26;c++)
{
p=ch[0][c];
if(p)
{
fail[p]=last[p]=0;
q.push(p);
}
}
while(!q.empty())
{
now=q.front();
q.pop();
for(c=0; c<26; ++c)
{
p=ch[now][c];
if(!p) continue;
q.push(p);
v=fail[now];
while(v&&!ch[v][c]) v=fail[v];
fail[p]=ch[v][c];
last[p]=val[fail[p]]?fail[p]:last[fail[p]];
}
}
} void ACadd(int x)
{
for(;x;x=last[x])
cnt[x]=1;
} void ACfind()
{
int i,j,p,len,c;
p=0;
len=strlen(ask);
memset(cnt,0,sizeof(cnt));
for(i=0;i<len-1;i++)
{
c=ask[i]-'a';
while(p&&!ch[p][c]) p=fail[p];
p=ch[p][c];
if(val[p]) ACadd(p);
else if(last[p]) ACadd(last[p]);
}
} int main()
{
int i,j;
bool flag;
freopen("letter.in","r",stdin);
freopen("letter.out","w",stdout);
scanf("%d",&n);
for(i=1;i<=n;i++)
{
scanf("%s",str);
ACinsert();
}
ACgetfail();
while(~scanf("%s",ask))
{
ACfind();
flag=false;
for(i=1;i<=siz;i++)
if(val[i]!=0)
if(cnt[i]==0)
{
flag=true;
break;
}
if(flag) puts("No");
else puts("Yes");
}
fclose(stdin);
fclose(stdout);
return 0;
}

小 W 学物理
【问题描述】
为了测试小 W 的物理水平,Mr.X 在二维坐标系中放了 N 面镜子(镜子坐标绝对值不超过 M) ,镜子均与坐标轴成 45°角,所以一共有两种类型“/”和“\”。原点不会有镜子,任意一点最多只有一面镜子。镜子两个面都能反光,而中间不透光,例如,对于一个“/”型镜子,下方向射入的光线会被反射到右方向,左方向射入的光线会被反射到上方向。
现在有一条光线从原点沿 X 轴正方向射出,求走过 T 路程后所在位置。
【输入格式】
第一行三个整数 N,M,T。
第 2 到 N+1 行,每行两个整数 Xi,Yi,表示镜子坐标,一个字符 Si 表示镜子类型。
【输出格式】
一行两个整数,表示走过 T 路程后的坐标。
【输入输出样例】
mir.in

5 2 8
0 1 \
0 2 /
1 0 /
1 1 \
1 2 \

mir.out
3 1
【数据规模】
对于 20%的数据:N=1
对于 40%的数据:N<=1000
对于 40%的数据:M<=1000
对于 40%的数据:T<=1000000

题解

预处理出每面镜子向4个方向反射出光线会到达的镜子是的编号后模拟并判环即可。

【2016常州一中夏令营Day2】的更多相关文章

  1. 【2016常州一中夏令营Day7】

    序列(sequence)[题目描述]蛤布斯有一个序列,初始为空.它依次将 1-n 插入序列,其中 i插到当前第 ai 个数的右边 (ai=0 表示插到序列最左边).它希望你帮它求出最终序列.[输入数据 ...

  2. 【2016常州一中夏令营Day6】

    小 W 算树[问题描述]山有苞棣,隰有树檖.未见君子,忧心如醉~小 W 养了一棵有 N 个点的无根树,由于小 M 最喜欢二叉树了,为了讨小 M 欢喜,小 W想知道有多少个点作为根后,这棵树是一棵二叉树 ...

  3. 【2016常州一中夏令营Day5】

    小 W 拼图[问题描述]小 W 和小 M 一起玩拼图游戏啦~小 M 给小 M 一张 N 个点的图,有 M 条可选无向边,每条边有一个甜蜜值,小 W 要选K 条边,使得任意两点间最多有一条路径,并且选择 ...

  4. 【2016常州一中夏令营Day4】

    小 W 走迷宫[问题描述]小 W 被小 M 困在了一个方格矩阵迷宫里,矩阵边界在无穷远处,我们做出如下的假设:a. 每走一步时,只能从当前方格移动一格,走到某个相邻的方格上:b. 走过的格子立即塌陷无 ...

  5. 【2016常州一中夏令营Day3】

    小 W 摆石子[问题描述]小 W 得到了一堆石子,要放在 N 条水平线与 M 条竖直线构成的网格的交点上.因为小 M 最喜欢矩形了,小 W 希望知道用 K 个石子最多能找到多少四边平行于坐标轴的长方形 ...

  6. 【2016常州一中夏令营Day1】

    Problem 1. suffix给定一个单词,如果该单词以 er. ly 或者 ing 后缀结尾,则删除该后缀(题目保证删除后缀后的单词长度不为 0),否则不进行任何操作.Input输入一行,包含一 ...

  7. 2019中山纪念中学夏令营-Day2[JZOJ]

    博客的开始,先聊聊代码实现: 每次比赛以后,要有归纳错误的习惯. 错误小结: 1.读入:scanf(“%c”)会读入回车和空格,但cin不会. 2.对于二维数组的输入,不能把m,n搞混了,会引起严重的 ...

  8. 夏令营提高班上午上机测试 Day 2 解题报告

    那一天,日照一中夏令营数据结构提高班的同学们终于想起了,被Day2上午的三道题支配的恐惧……   是的..这一天的题有点难想.. 本来打算前天写这篇随笔,然而前天在机房和同学打luogu月赛…… 昨天 ...

  9. 【FJ省队训练&&NOIP夏令营】酱油&&滚粗记

    FJOI2016省队训练滚粗记 2016.07.03~2016.07.06(Day1~5) 在学校期末考.因为才省选二试too young too simple爆蛋了所以下半个学期只能滚回去读文化课, ...

随机推荐

  1. 【风马一族_php】PHP运算

    运算 算术运算符 <?php //加法 $num1 = 10; $num2 = 43; echo $num1 + $num2; echo " "; var_dump($num ...

  2. 开通了第一个博客,mark一下!

    今日上网查询了不同的博客,包括csdn.掘金等,最终决定选择博客园.打算待前端学完后,自己建立一个博客,这段时间内先用博客园记录学习过程.经常总结.更新,相信坚持学习一定可以找到好工作!

  3. laravel 参数设置

    路由命名 Route::get('user/{id?}', function ($id = 1) { return "用户ID: " . $id; })->name('use ...

  4. 【NS2】学习点滴

    1 $ns duplex-link-op $n2 $n3 queuePos 0.5#此命令用于设置在NAM中显示的队列方向#经测试,发现: # queuePos 0.5表示包从上到下进入队列# que ...

  5. UVa-10986_Sending email (向前星+Dijkstra)

    题意:给你点.边,求起点到终点的最短距离. 题解:由于题目的数据量特别大,所以需要用邻接表来存边,之后对Dijkstra算法稍微魔改一下就可以了,本来以为会超时,做好了打堆优化的准备,结果卡时间过了, ...

  6. HZOJ string

    正解炸了…… 考试的时候想到了正解,非常高兴的打出来了线段树,又调了好长时间,对拍了一下发现除了非常大的点跑的有点慢外其他还行.因为复杂度算着有点高…… 最后正解死于常数太大……旁边的lyl用同样的算 ...

  7. oracle用UNION替换OR (适用于索引列)

    通常情况下, 用UNION替换WHERE子句中的OR将会起到较好的效果. 对索引列使用OR将造成全表扫描. 注意, 以上规则只针对多个索引列有效. 如果有column没有被索引, 查询效率可能会因为你 ...

  8. PyTorch中view的用法

    相当于numpy中resize()的功能,但是用法可能不太一样. 我的理解是: 把原先tensor中的数据按照行优先的顺序排成一个一维的数据(这里应该是因为要求地址是连续存储的),然后按照参数组合成其 ...

  9. 在 CentOS 7.3 上安装 nginx 服务为例,说明在 Linux 实例中如何检查 TCP 80 端口是否正常工作

    CentOS 7.3 这部分以在 CentOS 7.3 上安装 nginx 服务为例,说明在 Linux 实例中如何检查 TCP 80 端口是否正常工作. 登录 ECS 管理控制台,确认实例所在安全组 ...

  10. The 'decorators' plugin requires a 'decoratorsBeforeExport' option, ...(npm start报错)

    问题描述: 在npm start启动react项目的时候,出现了如下报错: The 'decorators' plugin requires a 'decoratorsBeforeExport' op ...