ACdream 速攻组~
1007 a + b
/*这题就是一个快速幂,但是十分猥琐的是,模是1e10 + 7,不是1e9 + 7,这就产生了一个爆long long的问题。所以要对快速幂中的乘法操作进行一下改造。请教了BIT_Is_a_Tree,学会了传说中的 「快速加」。原理和快速幂一模一样,a^{b}是b个a相乘,a \times b就是b个a相加。缺点是多了\log{n} 的复杂度。
*/
using namespace std;
typedef long long ll;
#define MOD 10000000007LL
ll fMul(ll a, ll b) {
ll t = , y = a;
while(b) {
if(b & ) t = (t + y) % MOD;
y = (y + y) % MOD;
b >>= ;
}
return t;
}
ll modExp(ll a, ll b) {
ll t = , y = a;
while(b) {
if(b & ) t = (fMul(t, y)) % MOD;
y = (fMul(y, y)) % MOD;
b >>= ;
}
return t;
}
int main() {
int T;
ll n, k, t, sum;
cin >> T;
while(T--) {
cin >> n >> k;
sum = ;
for(int i = ; i <= n; i++) {
cin >> t;
t = ((t % MOD) + MOD) % MOD;
sum += modExp(t, k);
sum %= MOD;
}
cout << sum << endl;
}
return ;
}
1008 A Very Easy Triangle Counting Game
/*题意:在圆上取n个点,相邻两个点之间连线,(注意,n和1相邻),然后所有点对(i ,i+2)相连,问能形成的不同的三角形有多少个? 思路:画图找规律,发现n=3,cnt=1; n=4,cnt=8; n=5 cnt=35 (5*2+5*2+ 5+5+5); n=6 cnt= 32 (6*2+6*2+ 6+2); n=7,cnt=35(7*2+7*2+7); n=8, cnt=40(8*2+8*2+8) 发现后面项演变成多边形了! 于是得到规律:n>6;cnt=5*n
*/
#include <stdio.h>
int a[]={,,,,,,};
int main()
{
int T,n,ans;
scanf("%d",&T);
for(int i=;i<=T;i++)
{
scanf("%d",&n);
ans=n>?(*n):a[n];
printf("Case #%d: %d\n",i,ans%);
}
return ;
}
1013 Count It!
/*
扫一遍,胡乱暴力一发~
*/
#include<iostream>
#include<string.h>
#include<stdio.h>
#include<ctype.h>
#include<algorithm>
#include<stack>
#include<queue>
#include<set>
#include<math.h>
#include<vector>
#include<map>
#include<deque>
#include<list>
using namespace std;
int main()
{
int a;
while(cin>>a)
{
string b;
cin>>b;
int minn=;
for(int i=;i<b.size();i++)
{
if(b[i]=='L')
minn++;
}
cout<<minn+a-b.size()<<" "<<minn<<endl;
}
return ;
}
1020 The Game about KILL
/*
约瑟夫环,n太大,首先可以想到打表找看有没有规律 可以发现时有规律的 可以看到,只要是2的i次幂,那么存活的是1,后面的依次加2 例如4为1,5就是3,6->5,7->7,8->1
--------------------------------------------------------
我直接拍log(n)/log(2),使劲wa,唉唉唉,姿势长傻了,没办法
*/
#include <stdio.h>
#include <string.h>
#include <algorithm>
using namespace std;
#define ll long long
ll f[],n; int main()
{
int i;
f[] = ;
for(i = ; i<; i++)
f[i] = f[i-]*;
while(~scanf("%lld",&n))
{
for(i = ; i<; i++)
{
if(n<f[i])
break;
}
printf("%lld\n",+*(n-f[i-]));
} return ;
}
1037 UUZ is hunger
/*
sort一下,然后累加暴力一发~
*/
#include<iostream>
#include<string.h>
#include<stdio.h>
#include<ctype.h>
#include<algorithm>
#include<stack>
#include<queue>
#include<set>
#include<math.h>
#include<vector>
#include<map>
#include<deque>
#include<list>
using namespace std;
long long a[];
int main()
{
long long n,k;
while(scanf("%lld%lld",&n,&k)!=EOF)
{
memset(a,,sizeof(a));
long long sum=;
int ans=;
for(int i=;i<n;i++)
cin>>a[i];
sort(a,a+n);
for(int i=n-;i>=;i--)
{
sum+=a[i];
ans++;
if(sum>=k)
break;
}
cout<<ans<<endl;
}
return ;
}
1061 郭式树
/*
啪啪啪,叫你别用cin,叫你别用cout,叫你沙茶
*/
#include <stdio.h>
#include <string.h>
#include <algorithm>
using namespace std; int main()
{
int t;
long long x, y;
unsigned long long z;
scanf("%d", &t);
while(t--)
{
scanf("%lld%lld", &x, &y);
if(x > y)
z = x - y;
else
z = y - x;
printf("%llu\n", z);
}
return ;
}
1064 完美数
/*
数位DP,乱搞一发
s=0表示既不含3也不含8
s=1表示只含3
s=2表示只含8
s=3表示既含3也含8
*/
#include<cstdio>
#include<cstring>
int a[],f[][];
int new_s(int s,int d){
if(d==)return s|;
if(d==)return s|;
return s;
}
int dfs(int i,int s,bool e){
if(i==-)return s==||s==;
if(!e&&f[i][s]!=-)return f[i][s];
int res=,u=e?a[i]:,d;
for(d=;d<=u;d++)res+=dfs(i-,new_s(s,d),e&&(d==u));
return e?res:f[i][s]=res;
}
int cal(int n){
int i=;
while(n){a[i++]=n%,n/=;}
return dfs(i-,,);
}
int main(){
int T,l,r;
scanf("%d",&T);
memset(f,-,sizeof(f));
while(T--){
scanf("%d%d",&l,&r);
printf("%d\n",cal(r)-cal(l-));
}
return ;
}
1065 同心树
/*
几何题目,乱搞就是
*/
#include<iostream>
#include<stdio.h>
#include<cstring>
#include<algorithm>
#include<cmath>
using namespace std;
int main( )
{
int T;
double N,a;
scanf("%d",&T);
while( T-- ){
scanf("%lf%lf",&N,&a);
if( a >= )
a -= ;
if( a == )
{
printf("%.2lf\n",N*N);
continue;
}
a = a*3.141592654/180.0;
double r = N/( + cos(a) + sin(a) );
printf("%.2lf\n",N*N-r*r*(sin(*a)));
}
return ;
}
1069 无耻的出题人
/*题意:翻译题目之后,再解决翻译之后的题目
思路:斐布拉契数,注意规律,
翻译代码如下:
#include<stdio.h>
#include<cstring>
char s[28]={'0','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};
int main()
{
long long a[100];
a[0]=1;a[1]=1;
for(int i=2;i<100;i++)
a[i]=a[i-1]+a[i-2];
char c[100];
gets(c);
for(int i=0,x=0;i<strlen(c);)
{
for(int j=1;j<=26;j++)
{
if(c[i]==s[j])
{
c[i]=s[(j-a[x]%26+26)%26];//题目的26个字母是循环的
i++;x++;
break;
}
else if(c[i]==' '||c[i]==',')
{
i++;
}
}
}
printf("%s",c);
//puts(c);
}
A题代码如下:
*/
#include <stdio.h>
#include <string.h>
int main()
{
char s[];
while(scanf("%s",s)!=EOF)
{
int sum=;
for(int i=;s[i];i++)
{
if(s[i]>='' && s[i] <='')
sum+=s[i]-'';
}
printf("%d\n",sum);
}
}
1088 哼!我才是最短的
/*
输出的时候,按照8 1 7 2 6 3 5 4这种一大一小输出即可
*/
#include<iostream>
#include<cstdio>
using namespace std;
#define M 1000005
#define MN 100000
int main()
{
int n,a;
int i,j;
cin>>n;
while(n--)
{
cin>>a;
if(a%==)
{
for(i=,j=;i<a/-;i++)
{
cout<<a-i<<" "<<i+<<" ";
}
cout<<a/+<<" "<<a/<<endl;
}
else
{
for(i=,j=;i<a/;i++)
{
cout<<a-i<<" "<<i+<<" ";
}
cout<<a/+<<endl;
}
}
return ;
}
1125 ACfun
/*
题意:找到最长的连续A的个数n,然后输出n+1个A
思路:暴力。
*/
#include<cstdio>
#include<cstring>
#include<iostream>
using namespace std;
int main()
{
char s[];
int i,j,k,l,t;
int sum,max;
cin>>t;
getchar();
while(t--)
{
sum=max=;
gets(s);
for(i=;i<strlen(s);i++)
{
if(s[i]=='A')
{ sum=; for(j=i+;j<strlen(s);j++)
{
if(s[i]==s[j])
sum++;
if(sum>max)
max=sum;
if(s[i]!=s[j])
{
sum=;
break;
}
}
}
}
for(i=;i<=max;i++)
printf("A");
printf("\n");
}
return ;
}
ACdream 速攻组~的更多相关文章
- HTML代码大全
1.html的简介* 什么是html?- HyperText Markup Language:超文本标记语言,网页语言** 超文本:超出文本的范畴,使用html可以轻松实现这样操作** 标记:html ...
- html 代码
1.结构性定义 文件类型 <HTML></HTML> (放在档案的开头与结尾) 文件主题 <TITLE></TITLE> (必须放在「文头」区块内) 文 ...
- html常用代码大全
1.结构性定义 文件类型 <HTML></HTML> (放在档案的开头与结尾) 文件主题 <TITLE></TITLE> (必须放在「文头」区块内) 文 ...
- 传奇身上装备升级系列脚本,以及UPGRADEITEMEX 脚本的详细参数解释
UPGRADEITEMEX 脚本的详细参数解释如下: UPGRADEITEMEX 物品位置(0-12) 属性位置(0-14) 成功机率(0-100) 点数机率(0-255) 是否破碎(0,1) 物品位 ...
- 【链接】LINUX SHELL脚本攻略笔记[速查]
LINUX SHELL脚本攻略笔记[速查]
- LINUX SHELL脚本攻略笔记[速查]
Linux Shell脚本攻略笔记[速查] 资源 shell script run shell script echo printf 环境变量和变量 pgrep shell数学运算 命令状态 文件描述 ...
- Netsuite Formula > Oracle函数列表速查(PL/SQL单行函数和组函数详解).txt
PL/SQL单行函数和组函数详解 函数是一种有零个或多个参数并且有一个返回值的程序.在SQL中Oracle内建了一系列函数,这些函数都可被称为SQL或PL/SQL语句,函数主要分为两大类: 单行函数 ...
- 史上最全PMP备考考点全攻略(上篇-五大过程组,附赠资料)
一.这可能是一篇史上最全的PMP备考考点全梳理文章 写在前面,这可能是史上最全的PMBOK考点全书考点梳理,由PMP备考自律营呕心沥血整理,内容较长,分为上下篇,绝对值得所有正在备考PMP的学员收藏! ...
- 史丰收速算|2014年蓝桥杯B组题解析第四题-fishers
史丰收速算 史丰收速算法的革命性贡献是:从高位算起,预测进位.不需要九九表,彻底颠覆了传统手算! 速算的核心基础是:1位数乘以多位数的乘法. 其中,乘以7是最复杂的,就以它为例. 因为,1/7 是个循 ...
随机推荐
- mysql优化【转】
最近听讲了博森瑞老师的mysql优化公开课,这个是我整理的笔记. 现在说一下mysql的内存和I/O方面的两个特点. 一. mysql内存特点: 1. 也有全局内存和每个session的内存(每个s ...
- Python Challenge 第 2 关攻略:ocr
text="那一大推乱码" 方案1 from collections import Counter print(Counter(text)) 方案2 import string & ...
- SSD的SLC MLC 和TLC哪个好?
<1>SLC = Single-Level Cell ,即1bit/cell,速度快寿命长,价格超贵(约MLC 3倍以上的价格),约10万次擦写寿命MLC = Multi-Level Ce ...
- 一、springboot入门
构建spring boot工程一般采用两种方式 gradle .maven maven方式 pom.xml spring-boot-starter:核心模块,包括自动配置支持.日志和YAML spri ...
- Linux下获取和设置IP
在Linux下获取关于IP和网关的操作:重点是对struct ifreq 的操作. 那么进入目录/usr/include/net/if.h下看查找struct ifreq结构体. /* Interfa ...
- Python全局变量和局部变量
全局变量和局部变量 定义在函数内部的变量拥有一个局部作用域,定义在函数外的拥有全局作用域. 局部变量只能在其被声明的函数内部访问,而全局变量可以在整个程序范围内访问.调用函数时,所有在函数内声明的变量 ...
- python中set
集合update方法:是把要传入的元素拆分,做为个体传入到集合中,例如: >>> a = set('boy') >>> a.update('python') > ...
- js实现图片懒加载
大型购物网站都会采用图片懒加载技术来优化网站首页打开速度,以提高用户体验,那么具体是怎么实现的呢,我们一探究竟. html结构(div包裹一层用来显示背景图片,等待图片加载完成后,显示真实图片) &l ...
- java.lang.NoClassDefFoundError: javax/persistence/EntityListeners
在使用 Hibernate 进行数据库操作的时候,在启动 Tomcat 服务器后,Console 控制台可能会打印出这样的异常:java.lang.NoClassDefFoundError: java ...
- 在windows下使用Cygwin模拟unix环境 并安装apt-cyg svn等插件
在windows下使用Cygwin模拟unix环境,并安装apt-cyg,svn等工具 一.Cygwin的安装 1. 下载Cygwin,这个可以到这里下载 ,至于使用32位的还是64位的版本可以根据自 ...