runtime error-杭电amc hdu4027 Runtime Error (ACCESS_VIOLATION) 求看!

问题描述

杭电amc hdu4027 Runtime Error (ACCESS_VIOLATION) 求看!

#include
#include
#include
#include
using namespace std;
struct nod{
int l;
int r;
int flag;
int64 data;
};
int n,tem,m,a,b,c;
__int64 ans[100010];
__int64 sum;
struct nod tree[400040];
void maintain(int node){
tree[node].data=tree[node*2].data+tree[node*2+1].data;
tree[node].flag=tree[node*2].flag||tree[node*2+1].flag;
}
void build(int node,int l,int r){
tree[node].l=l;
tree[node].r=r;
tree[node].flag=1;
if(l==r){
tree[node].data=ans[l];
if(ans[l]<=1)tree[node].flag=0;
return;
}
int mid=(tree[node].l+tree[node].r)/2;
build(node*2,l,mid);
build(node*2+1,mid+1,r);
maintain(node);
}
void update(int node,int l,int r){
if(tree[node].flag==0)return;
if(tree[node].l==tree[node].r&&tree[node].l==l&&tree[node].r==r){
tree[node].data=(
int64)sqrt(1.0*tree[node].data);
if(tree[node].data<=1)tree[node].flag=0;
return ;
}
int mid=(tree[node].l+tree[node].r)/2;
if(r<=mid)
update(node*2,l,r);
else if(l>mid)
update(node*2+1,l,r);
else {
update(node*2,l,mid);
update(node*2+1,mid+1,r);
}
maintain(node);
}
void query(int node,int l,int r){
if(tree[node].l==l&&tree[node].r==r){
sum+=tree[node].data;
return;
}
int mid=(tree[node].l+tree[node].r)/2;
if(r<=mid)
query(node*2,l,r);
else if(l>mid)
query(node*2+1,l,r);
else {
query(node*2,l,mid);
query(node*2+1,mid+1,r);
}
}
int main(){
int count = 1;
while(scanf("%d",&n)!=EOF){
memset(ans,0,sizeof(ans));
for(int i = 1;i <= n; i++){
scanf("%ld",&ans[i]);
}
build(1,1,n);
scanf("%d",&m);
printf("Case #%d:n",count++);
for(int i = 1;i <= m; i++){
scanf("%d%d%d",&a,&b,&c);
if(a==0){
update(1,b,c);

}
if(a==1){
sum=0;
query(1,b,c);
printf("%I64dn",sum);}}}}

解决方案

都输入什么了,出错?

时间: 2024-11-28 20:26:14

runtime error-杭电amc hdu4027 Runtime Error (ACCESS_VIOLATION) 求看!的相关文章

ACM杭电1001 Sum Problem 为什么会报错Compilation Error

问题描述 importjava.util.Scanner;publicclassSumProblem{publicstaticvoidmain(String[]args){Scannersc=newScanner(System.in);while(sc.hasNext()){intsum=0;inti=sc.nextInt();for(intj=1;j<=i;j++){sum+=j;}System.out.println(sum);}}} 解决方案 解决方案二:运行没问题呀解决方案三:你是说在本

算法-C/C++杭电1501题Wooden sticks 求挑错

问题描述 C/C++杭电1501题Wooden sticks 求挑错 DescriptionThere is a pile of n wooden sticks. The length and weight of each stick are known in advance. The sticks are to be processed by a woodworking machine in one by one fashion. It needs some time called setup

acm-求问杭电ACM2010水仙花数,我的这个答案为什么是错的

问题描述 求问杭电ACM2010水仙花数,我的这个答案为什么是错的 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); int m=0; int n=0; while(in.hasNext()){ m=in.nextInt(); n=in.nextInt(); if(m<n){ narcissus(m,

测试-杭电c入门简单问题 求指导一下

问题描述 杭电c入门简单问题 求指导一下 题目如下输入n(n<=100)个整数,按照绝对值从大到小排序后输出.题目保证对于每一个测试实例,所有的数的绝对值都不相等. Input输入数据有多组,每组占一行,每行的第一个数字为n接着是n个整数,n=0表示输入数据的结束,不做处理. Output对于每个测试实例,输出排序后的结果,两个数之间用一个空格隔开.每个测试实例占一行. Sample Input3 3 -4 24 0 1 2 -30 Sample Output-4 3 2-3 2 1 0 Aut

杭电 1272 poj 1308 小希的迷宫

这道题是我学了并查集过后做的第三个题,教我们的学姐说这是并查集的基础题,所以有必要牢牢掌握. 下面就我做这道题的经验,给大家一些建议吧!当然,我的建议不是最好的,还请各位大神指出我的错误来,我也好改正. 1.题目概览 这道题是杭电1272,POJ 1308如果写好了代码可以试一试. 小希的迷宫 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s

JQuery ajax中error返回错误及一直返回error的解答_AJAX相关

进入百度搜索此问题,发现有人这么说了一句 Jquery中的Ajax的async默认是true(异步请求),如果想一个Ajax执行完后再执行另一个Ajax, 需要把async=false就可以了 于时我在ajax中进行了处理 async: false,结果发现提交正常的数据返回是正常的没有错误.  代码如下  $.ajax({ type: "POST", async: false, url:urllink, data:data, dataType:"html", su

杭电1002

题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1002 #include <stdio.h> #include <string.h> #define MAX 1010 char a[MAX],b[MAX]; int main() { int n,i,j,length,jinwei=0; int flag; char temp; scanf("%d",&n); for(i=0;i<n;i++) { i

杭电 acm 2039 ( 三角形 )判断这样用问什么会通不过呢?哪位大神讲讲正确的用法

问题描述 杭电 acm 2039 ( 三角形 )判断这样用问什么会通不过呢?哪位大神讲讲正确的用法 三角形 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 28002 Accepted Submission(s): 9138 Problem Description 给定三条边,请你判断一下能不能组成一个三角形. Input 输入数据第一行包含

acm-关于杭电ACM2031 进制转换感觉找不出自己的错误,求指出

问题描述 关于杭电ACM2031 进制转换感觉找不出自己的错误,求指出 #includeint main(){ long nr; char a[10000]; while(scanf(""%d%d""&n&r) == 2) { if(n == 0) printf(""0 ""); else { int i = 0; if(n while(n > 0) { a[i++] = n%r; n=n/r; } in