小 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. 【Django入坑之路】admin组件

    1:settings.py 中的 INSTALLED_APPS # Application definition INSTALLED_APPS = [ 'django.contrib.admin', ...

  2. hdu1564 简单博弈

    多画几个图可以发现规律: #include<stdio.h> int main() { int i,n; while(scanf("%d",&n)!=EOF) ...

  3. Directx11学习笔记【九】 3D渲染管线

    原文:Directx11学习笔记[九] 3D渲染管线 原文地址:http://blog.csdn.net/bonchoix/article/details/8298116 3D图形学研究的基本内容,即 ...

  4. 【NS2】学习资源

    查找资料时在网上看到不错的资源汇总博客 1 http://blog.csdn.net/chenkai619/article/category/1084323 2 http://blog.sina.co ...

  5. rank(),允许并列名次、复制名次自动空缺,结果如12245558……

    将score按ID分组排名:rank() over(partition by id order by score desc) 将score不分组排名:rank() over(order by scor ...

  6. [软考]之软件过程模型I 标签: 总结软考 2015-10-24 11:58 863人阅读 评论(35) 收藏

    做软考题的时候经常碰到软件工程的题,因为这些题有的很相近,容易混淆,所以在这里总结归纳一下. 软件过程模型: 瀑布模型: 瀑布模型是将软件生存周期中的各个活动规定为依线性顺序连接的若干阶段的模型,包括 ...

  7. @loj - 2091@ 「ZJOI2016」小星星

    目录 @description@ @solution@ @accepted code@ @details@ @description@ 小 Y 是一个心灵手巧的女孩子,她喜欢手工制作一些小饰品.她有 ...

  8. Android 使用Toolbar+DrawerLayout快速实现仿“知乎APP”侧滑导航效果

    在以前,做策划导航的时候,最常用的组件便是SlidingMenu了,当初第一次用它的时候觉得那个惊艳啊,体验可以说是非常棒. 后来,Android自己推出了一个可以实现策划导航的组件DrawerLay ...

  9. ListOfOpenSourcePrograms

    ListOfOpenSourcePrograms Contents Desktop Applications Communication Engineering Educational Financi ...

  10. uniapp点击底部tabbar不跳转页面

    一个项目,其设想是这样的,当我进入页面,发现有新版本,提示用户之后,用户点击确定跳转到下载页面. 弹出框要用自己封装的,因为uniapp的弹出框不同的手机上展示的样子不一样,领导的是华为(在这里悄悄吐 ...