常州day2

Task1

为了测试小 W 的数学水平,果果给了小 W N 个点,问他这 N 个点能构成的三角形个数。

对于 100%的数据:N<=100,保证任意两点不重合,坐标<=10000

恶心题(卡精度)

 1 #include<stdio.h>
 2 #include<stdlib.h>
 3 #include<iostream>
 4 #include<math.h>
 5 #define il inline
 6 #define re register
 7 using namespace std;
 8 struct P{int x,y;} a[101];
 9 int n,cnt=0;
10 il P operator - (P a,P b){
11     return (P){a.x-b.x,a.y-b.y};
12 }
13 il int operator * (P a,P b){
14     return a.x*b.y-a.y*b.x;
15 }
16 int main(){
17     freopen("tri.in","r",stdin);
18     freopen("tri.out","w",stdout);
19     cin>>n;
20     for(int i=1;i<=n;i++)
21         cin>>a[i].x>>a[i].y;
22     for(int i=1;i<=n;i++)
23         for(int j=i+1;j<=n;j++)
24             for(int k=j+1;k<=n;k++){
25                 if((a[i]-a[j])*(a[i]-a[k])!=0){
26                     cnt++;
27                 }
28             }
29     cout<<cnt;
30     return 0;
31 }

Task2

为了测试小 M 的英语水平,Mr.R 让小 M 写英语作文,小 M 则把作文交给了小 W 写。 然而 Mr.R 总结出了那个小 W 写作文的习惯,也就是某些关键的字符串。如果一篇作文 中这若干个关键字符串都出现,他就认为这是小 W 写的。注意,小 W 可能写多篇作文。

第一行一个整数 N,表示关键字符串的个数,N<=100。 接下来 N 行,每行为一个长度不超过 100 的字符串。 最后是若干段文本,每段文本以 $ 结尾。 由于写作文的人太疯狂,每篇作文最长可以达到 1350000 个字符,但作文的个数不超 过 10。

对于 100%的数据:N<=100

简单AC自动机

 1 #include<stdio.h>
 2 #include<stdlib.h>
 3 #include<iostream>
 4 #include<math.h>
 5 #include<string>
 6 #include<string.h>
 7 #include<queue>
 8 #define il inline
 9 #define re register
10 using namespace std;
11 int n,a[100001][31],len[101],cnt=0,end[100001],fail[100001],vis[100001],m;
12 char s[101][101],b[2000001];
13 queue<int> q;
14 il void match(){
15     for(int i=1;i<=cnt;i++) fail[i]=1;
16     q.push(1);
17     while(!q.empty()){
18         int h=q.front();q.pop();
19         for(int i=0,j;i<26;i++) if(a[h][i]>0){
20             j=fail[h];
21             while(j>1&&a[j][i]==0) j=fail[j];
22             if(a[j][i]>0&&a[j][i]!=a[h][i]){
23                 fail[a[h][i]]=a[j][i];
24             }
25             else fail[a[h][i]]=1;
26             q.push(a[h][i]);
27         }
28     }
29 }
30 il void getans(){
31     int j=1;
32     for(int i=1;i<m;i++){
33         while(j>1&&a[j][b[i]-‘a‘]==0) j=fail[j];
34         if(a[j][b[i]-‘a‘]>0){
35             j=a[j][b[i]-‘a‘];vis[j]=1;
36         }
37     }
38 }
39 int main(){
40     freopen("letter.in","r",stdin);
41     freopen("letter.out","w",stdout);
42     scanf("%d",&n);cnt=1;
43     for(int i=1,k;i<=n;i++){
44         scanf("%s",&s[i]);len[i]=strlen(s[i]);k=1;
45         for(int j=0;j<len[i];j++){
46             if(a[k][s[i][j]-‘a‘]) k=a[k][s[i][j]-‘a‘];
47             else{
48                 a[k][s[i][j]-‘a‘]=(++cnt);k=cnt;
49             }
50         }
51         end[k]=1;
52     }
53     match();
54     while(scanf("%s",b+1)!=EOF){
55         memset(vis,false,sizeof(vis));
56         m=strlen(b+1);getans();
57         bool flag=true;
58         for(int i=1;i<=cnt;i++)
59             if(end[i]==1&&vis[i]==0){
60                 flag=false;
61             }
62         if(flag) cout<<"Yes\n";
63         else cout<<"No\n";
64     }
65     return 0;
66 }
时间: 2024-08-01 10:46:23

常州day2的相关文章

块池是属于单个命名空间的一组块。

块池( Block Pool)     块池是属于单个命名空间的一组块.     每一个datanode为所有的block pool存储块.     Datanode是一个物理概念,而block pool是一个重新将block划分的逻辑概念.     同一个datanode中可以存着属于多个block pool的多个块.     Block pool允许一个命名空间在不通知其他命名空间的情况下为一个新的block创建Block ID.     一个Namenode失效不会影响其下的datanod

常州培训 day2 解题报告

第一题: 题目大意: 给出一个M面的骰子,投N次,求最大期望值. 最大期望值的定义: 比如M=2,N=2, 那么 2次可以是 1,1,最大值为1: 1,2最大值为2: 2,1最大值为2: 2,2 最大值为2: 最大期望值就是  (1+2+2+2)/4=1.75 也就是把所有情况的最大值加起来,除以方案数.M,N<=5000 解题过程:1.这题只能说自己数学水平不够,只能找找规律骗点分,竟然混了个40分.小的数据直接模拟,拿40分. 2.正解: 考虑最大值为1的情况,sum=1*(1^N-0^N)

【2016常州一中夏令营Day2】

小 W 学数学[问题描述]为了测试小 W 的数学水平,果果给了小 W N 个点,问他这 N 个点能构成的三角形个数.[输入格式]第一行一个整数 N,代表点数.接下来 N 行,每行两个非负整数 X.Y,表示一个点的坐标.[输出格式]一个非负整数,即构成三角形个数.[输入输出样例]tri.in       5           0 01 02 00 11 1 tri.out       9 [数据规模]对于 20%的数据:N=3对于另外 40%的数据:保证任意 3 点不在同一直线上对于 100%的

常州培训 day6

第一题: 题目大意: 给出一个N*N的矩阵,矩阵元素均为0或1.定义矩阵权值为sum(F[i][j]*F[j][i]); 给出K个操作: 询问矩阵的权值mod 2. 将矩阵的某一行元素取反(0变成1,1变成0). 将矩阵的某一列元素取反. N<=1000,K<=10^5 解题过程: 一开始看到K的范围有点大,肯定不能模拟,想到前几天N皇后那题大神讲了可以用60位压成一个long long优化,于是就傻乎乎的把每一行每一列都60位压缩.然后各种麻烦的操作,写到最后发现写不下去了,顿时心情糟透了,

雅礼集训——day1、day2

day1: 嗯上午考试拿了100分.第一题40,第二题60.看完题的时候我就觉得第二题的部分分是最好得到的,因为数据范围只有300,而且一眼看上去就是网络流的二分图多重匹配模型?然后就建了个网络流写了些,期望得分是70分,但是第1组数据有点劲,被卡掉了,就拿了60分.正解是map+set的贪心...并不会STL 写完T2去看T1,先用DFS乱搞了一下,结果样例都没过去,我手推了一下样例,得到了一个公式,就是从一个点出发需要加上的边数=这个点通过DFS能够遍历到的点的个数-与这个点直接相连的点的个

python之day2

模块初识   模块分两种:标准库和第三方库 Sys和os模块,标准库 Import sys Sys.path    #print(sys.path) 起名字时不能与导入的库名一样,因为导入的时候首先会到当前目录中找,这样就会导入自己. Python和系统都有一个环境变量,print(sys.path)可以打印出python的环境变量,输出结果如下: ['D:\\python_file\\day2', 'D:\\python_file', 'C:\\Python35\\python35.zip',

day2—Python基本知识的补充:对象的方法

以下方法是由景丽洋在工作中总结出来的常用的字符串方法. 1..count()方法 作用:统计字符串中指定字符的个数. #!/usr/bin/env python # Author:William Huang str = 'www.oldboyedu.com' a = str.count('o') # 如果被统计的字符串中有多个字符,则只会统计第一个字符的位置 print(a) 返回结果为:3 ----------------------------------------------------

Python之路,Day2 - 字典

一.Python 环境变量 1. import 模块加载路径 ['C:\\Users\\123\\PycharmProjects\\untitled\\day2', ' C:\\Users\\123\\PycharmProjects\\untitled', ' C:\\Users\\123\\AppData\\Local\\Programs\\Python\\Python35\\python35.zip', 'C:\\Users\\123\\AppData\\Local\\Programs\\P

Java每日编程day2

第一题 package com.pcx.day2; /* * 九九乘法表 并逆序 */ public class JiuJiu { ????public static void main(String[] args) { ????????for (int i = 1; i < 10; i++) { ????????????for (int j = 1; j <= i; j++) { ????????????????System.out.print(j+"*"+i+"